TaskScheduler

Internal scheduling abstraction used by platform implementations.

Extends KmpWorker with no additional API surface — exists as a named type so platform modules can implement a single, focused contract.

enqueueChain and observeChain are intentionally NOT implemented here — they are handled at the KmpWorker layer (AndroidKmpWorker / IOSKmpWorker).

Platform implementations:

  • Android → io.neuralheads.kmpworker.android.AndroidTaskScheduler

  • iOS → io.neuralheads.kmpworker.ios.IOSTaskScheduler

Functions

Link copied to clipboard
abstract suspend override fun cancel(taskId: String)
Link copied to clipboard
open suspend fun cancelBatch(taskIds: List<String>)
Link copied to clipboard
abstract suspend override fun cancelByTag(tag: String)
Link copied to clipboard
open suspend fun clearExecutionHistory()
Link copied to clipboard
abstract suspend override fun enqueue(request: TaskRequest)
Link copied to clipboard
open suspend fun enqueueBatch(requests: List<TaskRequest>)
Link copied to clipboard
open suspend fun enqueueChain(chain: TaskChain)
open suspend override fun enqueueChain(chain: TaskChain, policy: ChainPolicy): Nothing
Link copied to clipboard
open suspend fun getExecutionHistory(limit: Int): List<ExecutionRecord>
Link copied to clipboard
abstract override fun observe(taskId: String): Flow<TaskState>
Link copied to clipboard
abstract override fun observeAll(): Flow<Pair<String, TaskState>>
Link copied to clipboard
open override fun observeChain(chainId: String): Flow<TaskState>
Link copied to clipboard
abstract override fun register(taskId: String, block: suspend () -> Unit)
Link copied to clipboard
abstract override fun registerWithContext(taskId: String, block: suspend TaskExecutionContext.() -> Unit)