Skip to content

Taskora API Reference / memory / MemoryBackend

Class: MemoryBackend

Defined in: packages/taskora/dist/memory/index.d.mts:3

Implements

Constructors

Constructor

new MemoryBackend(options?): MemoryBackend

Defined in: packages/taskora/dist/memory/index.d.mts:23

Parameters

ParameterType
options?{ clock?: () => number; }
options.clock?() => number

Returns

MemoryBackend

Properties

PropertyTypeDescriptionDefined in
_clock() => numberInternalpackages/taskora/dist/memory/index.d.mts:22

Methods

_recordThroughput()

_recordThroughput(type): void

Defined in: packages/taskora/dist/memory/index.d.mts:197

Internal

— called by ack/fail to record throughput

Parameters

ParameterType
type"completed" | "failed"

Returns

void


ack()

ack(task, jobId, token, result): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:126

Parameters

ParameterType
taskstring
jobIdstring
tokenstring
resultstring

Returns

Promise<void>

Implementation of

Adapter.ack


ackAndDequeue()

ackAndDequeue(task, jobId, token, result, newToken, newLockTtl, options?): Promise<AckAndDequeueResult>

Defined in: packages/taskora/dist/memory/index.d.mts:130

Atomically ack the current job and dequeue the next one in a single roundtrip. Optional — adapters that don't implement this fall back to separate ack() + dequeue() calls in the worker. The Redis adapter implements it as a fused Lua script (ACK_AND_MOVE_TO_ACTIVE) which is critical for high-concurrency throughput: each slot self-feeds without funneling through the worker's poll loop.

The returned AckAndDequeueResult also carries the workflow binding of the acked job so the worker can advance/cancel the workflow without a follow-up getWorkflowMeta HMGET.

Parameters

ParameterType
taskstring
jobIdstring
tokenstring
resultstring
newTokenstring
newLockTtlnumber
options?DequeueOptions

Returns

Promise<AckAndDequeueResult>

Implementation of

Adapter.ackAndDequeue


acquireSchedulerLock()

acquireSchedulerLock(token, ttl): Promise<boolean>

Defined in: packages/taskora/dist/memory/index.d.mts:184

Parameters

ParameterType
tokenstring
ttlnumber

Returns

Promise<boolean>

Implementation of

Adapter.acquireSchedulerLock


addLog()

addLog(_task, jobId, entry): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:145

Parameters

ParameterType
_taskstring
jobIdstring
entrystring

Returns

Promise<void>

Implementation of

Adapter.addLog


addSchedule()

addSchedule(name, config, nextRun): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:169

Parameters

ParameterType
namestring
configstring
nextRunnumber

Returns

Promise<void>

Implementation of

Adapter.addSchedule


advanceWorkflow()

advanceWorkflow(workflowId, nodeIndex, result): Promise<WorkflowAdvanceResult>

Defined in: packages/taskora/dist/memory/index.d.mts:187

Parameters

ParameterType
workflowIdstring
nodeIndexnumber
resultstring

Returns

Promise<WorkflowAdvanceResult>

Implementation of

Adapter.advanceWorkflow


awaitJob()

awaitJob(_task, jobId, timeoutMs?): Promise<AwaitJobResult>

Defined in: packages/taskora/dist/memory/index.d.mts:152

Parameters

ParameterType
_taskstring
jobIdstring
timeoutMs?number

Returns

Promise<AwaitJobResult>

Implementation of

Adapter.awaitJob


blockingDequeue()

blockingDequeue(task, lockTtl, token, timeoutMs, options?): Promise<DequeueResult>

Defined in: packages/taskora/dist/memory/index.d.mts:125

Parameters

ParameterType
taskstring
lockTtlnumber
tokenstring
timeoutMsnumber
options?DequeueOptions

Returns

Promise<DequeueResult>

Implementation of

Adapter.blockingDequeue


cancel()

cancel(task, jobId, reason?): Promise<"cancelled" | "flagged" | "not_cancellable">

Defined in: packages/taskora/dist/memory/index.d.mts:137

Parameters

ParameterType
taskstring
jobIdstring
reason?string

Returns

Promise<"cancelled" | "flagged" | "not_cancellable">

Implementation of

Adapter.cancel


cancelWorkflow()

cancelWorkflow(workflowId, reason?): Promise<WorkflowCancelResult>

Defined in: packages/taskora/dist/memory/index.d.mts:190

Parameters

ParameterType
workflowIdstring
reason?string

Returns

Promise<WorkflowCancelResult>

Implementation of

Adapter.cancelWorkflow


cleanJobs()

cleanJobs(task, state, before, limit): Promise<number>

Defined in: packages/taskora/dist/memory/index.d.mts:202

Parameters

ParameterType
taskstring
stateJobState
beforenumber
limitnumber

Returns

Promise<number>

Implementation of

Adapter.cleanJobs


clear()

clear(): void

Defined in: packages/taskora/dist/memory/index.d.mts:47

Internal

Returns

void


collectPush()

collectPush(task, jobId, item, options): Promise<{ count: number; flushed: boolean; }>

Defined in: packages/taskora/dist/memory/index.d.mts:111

Parameters

ParameterType
taskstring
jobIdstring
itemstring
options{ _v: number; collectKey: string; delayMs: number; maxAttempts?: number; maxSize: number; maxWaitMs: number; }
options._vnumber
options.collectKeystring
options.delayMsnumber
options.maxAttempts?number
options.maxSizenumber
options.maxWaitMsnumber

Returns

Promise<{ count: number; flushed: boolean; }>

Implementation of

Adapter.collectPush


connect()

connect(): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:55

Returns

Promise<void>

Implementation of

Adapter.connect


createWorkflow()

createWorkflow(workflowId, graph): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:186

Parameters

ParameterType
workflowIdstring
graphstring

Returns

Promise<void>

Implementation of

Adapter.createWorkflow


debounceEnqueue()

debounceEnqueue(task, jobId, data, options, debounceKey, delayMs): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:80

Parameters

ParameterType
taskstring
jobIdstring
datastring
options{ _v: number; concurrencyKey?: string; concurrencyLimit?: number; expireAt?: number; maxAttempts?: number; priority?: number; }
options._vnumber
options.concurrencyKey?string
options.concurrencyLimit?number
options.expireAt?number
options.maxAttempts?number
options.priority?number
debounceKeystring
delayMsnumber

Returns

Promise<void>

Implementation of

Adapter.debounceEnqueue


deduplicateEnqueue()

deduplicateEnqueue(task, jobId, data, options, dedupKey, states): Promise<{ created: true; } | { created: false; existingId: string; }>

Defined in: packages/taskora/dist/memory/index.d.mts:97

Parameters

ParameterType
taskstring
jobIdstring
datastring
options{ _v: number; concurrencyKey?: string; concurrencyLimit?: number; delay?: number; expireAt?: number; maxAttempts?: number; priority?: number; }
options._vnumber
options.concurrencyKey?string
options.concurrencyLimit?number
options.delay?number
options.expireAt?number
options.maxAttempts?number
options.priority?number
dedupKeystring
statesstring[]

Returns

Promise<{ created: true; } | { created: false; existingId: string; }>

Implementation of

Adapter.deduplicateEnqueue


dequeue()

dequeue(task, lockTtl, token, options?): Promise<DequeueResult>

Defined in: packages/taskora/dist/memory/index.d.mts:124

Parameters

ParameterType
taskstring
lockTtlnumber
tokenstring
options?DequeueOptions

Returns

Promise<DequeueResult>

Implementation of

Adapter.dequeue


disconnect()

disconnect(): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:56

Returns

Promise<void>

Implementation of

Adapter.disconnect


enqueue()

enqueue(task, jobId, data, options): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:58

Parameters

ParameterType
taskstring
jobIdstring
datastring
optionsobject & DispatchOptions

Returns

Promise<void>

Implementation of

Adapter.enqueue


enqueueBulk()

enqueueBulk(task, jobs): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:67

Parameters

ParameterType
taskstring
jobsobject[]

Returns

Promise<void>

Implementation of

Adapter.enqueueBulk


extendLock()

extendLock(task, jobId, token, ttl): Promise<"extended" | "lost" | "cancelled">

Defined in: packages/taskora/dist/memory/index.d.mts:136

Parameters

ParameterType
taskstring
jobIdstring
tokenstring
ttlnumber

Returns

Promise<"extended" | "lost" | "cancelled">

Implementation of

Adapter.extendLock


fail()

fail(task, jobId, token, error, retry?): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:127

Parameters

ParameterType
taskstring
jobIdstring
tokenstring
errorstring
retry?{ delay: number; }
retry.delay?number

Returns

Promise<void>

Implementation of

Adapter.fail


failAndDequeue()

failAndDequeue(task, jobId, token, error, retry, newToken, newLockTtl, options?): Promise<AckAndDequeueResult>

Defined in: packages/taskora/dist/memory/index.d.mts:131

Atomically fail the current job and dequeue the next one in a single roundtrip. Optional — see ackAndDequeue for rationale. The workflow binding is only populated on permanent failures (retries don't cascade).

Parameters

ParameterType
taskstring
jobIdstring
tokenstring
errorstring
retry{ delay: number; }
retry.delaynumber
newTokenstring
newLockTtlnumber
options?DequeueOptions

Returns

Promise<AckAndDequeueResult>

Implementation of

Adapter.failAndDequeue


failWorkflow()

failWorkflow(workflowId, nodeIndex, error): Promise<WorkflowFailResult>

Defined in: packages/taskora/dist/memory/index.d.mts:188

Parameters

ParameterType
workflowIdstring
nodeIndexnumber
errorstring

Returns

Promise<WorkflowFailResult>

Implementation of

Adapter.failWorkflow


finishCancel()

finishCancel(task, jobId, token): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:138

Parameters

ParameterType
taskstring
jobIdstring
tokenstring

Returns

Promise<void>

Implementation of

Adapter.finishCancel


forceFlushCollect()

forceFlushCollect(task, key?): void

Defined in: packages/taskora/dist/memory/index.d.mts:45

Internal

Parameters

ParameterType
taskstring
key?string

Returns

void


getAllJobs()

getAllJobs(): object[]

Defined in: packages/taskora/dist/memory/index.d.mts:49

Internal

Returns

object[]


getEarliestDelayedScore()

getEarliestDelayedScore(): number

Defined in: packages/taskora/dist/memory/index.d.mts:43

Internal

— earliest delayed job score across all tasks

Returns

number


getError()

getError(_task, jobId): Promise<string>

Defined in: packages/taskora/dist/memory/index.d.mts:148

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<string>

Implementation of

Adapter.getError


getJobDetails()

getJobDetails(_task, jobId): Promise<RawJobDetails>

Defined in: packages/taskora/dist/memory/index.d.mts:157

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<RawJobDetails>

Implementation of

Adapter.getJobDetails


getLogs()

getLogs(_task, jobId): Promise<string[]>

Defined in: packages/taskora/dist/memory/index.d.mts:150

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<string[]>

Implementation of

Adapter.getLogs


getProgress()

getProgress(_task, jobId): Promise<string>

Defined in: packages/taskora/dist/memory/index.d.mts:149

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<string>

Implementation of

Adapter.getProgress


getQueueStats()

getQueueStats(task): Promise<QueueStats>

Defined in: packages/taskora/dist/memory/index.d.mts:158

Parameters

ParameterType
taskstring

Returns

Promise<QueueStats>

Implementation of

Adapter.getQueueStats


getResult()

getResult(_task, jobId): Promise<string>

Defined in: packages/taskora/dist/memory/index.d.mts:147

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<string>

Implementation of

Adapter.getResult


getSchedule()

getSchedule(name): Promise<{ config: string; nextRun: number; paused: boolean; }>

Defined in: packages/taskora/dist/memory/index.d.mts:171

Parameters

ParameterType
namestring

Returns

Promise<{ config: string; nextRun: number; paused: boolean; }>

Implementation of

Adapter.getSchedule


getServerInfo()

getServerInfo(): Promise<{ connected: boolean; uptime: number; usedMemory: string; version: string; }>

Defined in: packages/taskora/dist/memory/index.d.mts:203

Returns

Promise<{ connected: boolean; uptime: number; usedMemory: string; version: string; }>

Implementation of

Adapter.getServerInfo


getState()

getState(_task, jobId): Promise<JobState>

Defined in: packages/taskora/dist/memory/index.d.mts:146

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<JobState>

Implementation of

Adapter.getState


getTaskKeyStats()

getTaskKeyStats(_task): Promise<{ keyCount: number; memoryBytes: number; }>

Defined in: packages/taskora/dist/memory/index.d.mts:198

Parameters

ParameterType
_taskstring

Returns

Promise<{ keyCount: number; memoryBytes: number; }>

Implementation of

Adapter.getTaskKeyStats


getTaskNames()

getTaskNames(): string[]

Defined in: packages/taskora/dist/memory/index.d.mts:41

Internal

Returns

string[]


getThroughput()

getThroughput(_task, bucketSize, count): Promise<object[]>

Defined in: packages/taskora/dist/memory/index.d.mts:218

Parameters

ParameterType
_taskstring
bucketSizenumber
countnumber

Returns

Promise<object[]>

Implementation of

Adapter.getThroughput


getVersionDistribution()

getVersionDistribution(task): Promise<{ active: Record<number, number>; delayed: Record<number, number>; waiting: Record<number, number>; }>

Defined in: packages/taskora/dist/memory/index.d.mts:164

Parameters

ParameterType
taskstring

Returns

Promise<{ active: Record<number, number>; delayed: Record<number, number>; waiting: Record<number, number>; }>

Implementation of

Adapter.getVersionDistribution


getWorkflowDetail()

getWorkflowDetail(workflowId): Promise<WorkflowDetail>

Defined in: packages/taskora/dist/memory/index.d.mts:217

Parameters

ParameterType
workflowIdstring

Returns

Promise<WorkflowDetail>

Implementation of

Adapter.getWorkflowDetail


getWorkflowMeta()

getWorkflowMeta(_task, jobId): Promise<{ nodeIndex: number; workflowId: string; }>

Defined in: packages/taskora/dist/memory/index.d.mts:191

Parameters

ParameterType
_taskstring
jobIdstring

Returns

Promise<{ nodeIndex: number; workflowId: string; }>

Implementation of

Adapter.getWorkflowMeta


getWorkflowState()

getWorkflowState(workflowId): Promise<string>

Defined in: packages/taskora/dist/memory/index.d.mts:189

Parameters

ParameterType
workflowIdstring

Returns

Promise<string>

Implementation of

Adapter.getWorkflowState


handshake()

handshake(ours): Promise<SchemaMeta>

Defined in: packages/taskora/dist/memory/index.d.mts:57

Atomically persist-or-read the wire-format meta record.

Contract: • If no meta is currently stored in this backend (+ prefix), the adapter writes ours verbatim and returns ours. • Otherwise, the adapter returns whatever meta is already stored, UNTOUCHED — the check/upgrade decision belongs to core.

Called exactly once per App.ensureConnected(), immediately after connect() and before any worker/scheduler/dispatch runs. Core calls checkCompat(ours, returned) and throws SchemaVersionMismatchError on any incompatibility.

Parameters

ParameterType
oursSchemaMeta

Returns

Promise<SchemaMeta>

Implementation of

Adapter.handshake


inspectCollect()

inspectCollect(task, collectKey): Promise<CollectBufferInfo>

Defined in: packages/taskora/dist/memory/index.d.mts:123

Stats-only view of the current collect buffer for (task, collectKey). Cheaper than peekCollect — reads only the meta hash, not the item payloads. Returns null if there is no active buffer for the key.

Parameters

ParameterType
taskstring
collectKeystring

Returns

Promise<CollectBufferInfo>

Implementation of

Adapter.inspectCollect


listJobDetails()

listJobDetails(task, state, offset, limit): Promise<object[]>

Defined in: packages/taskora/dist/memory/index.d.mts:153

Parameters

ParameterType
taskstring
state"cancelled" | "waiting" | "delayed" | "active" | "completed" | "failed" | "expired"
offsetnumber
limitnumber

Returns

Promise<object[]>

Implementation of

Adapter.listJobDetails


listSchedules()

listSchedules(): Promise<ScheduleRecord[]>

Defined in: packages/taskora/dist/memory/index.d.mts:176

Returns

Promise<ScheduleRecord[]>

Implementation of

Adapter.listSchedules


listWorkflows()

listWorkflows(state?, offset?, limit?): Promise<object[]>

Defined in: packages/taskora/dist/memory/index.d.mts:209

Parameters

ParameterType
state?WorkflowState
offset?number
limit?number

Returns

Promise<object[]>

Implementation of

Adapter.listWorkflows


nack()

nack(task, jobId, token): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:135

Parameters

ParameterType
taskstring
jobIdstring
tokenstring

Returns

Promise<void>

Implementation of

Adapter.nack


onCancel()

onCancel(task, handler): Promise<() => void>

Defined in: packages/taskora/dist/memory/index.d.mts:139

Parameters

ParameterType
taskstring
handler(jobId) => void

Returns

Promise<() => void>

Implementation of

Adapter.onCancel


pauseSchedule()

pauseSchedule(name): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:182

Parameters

ParameterType
namestring

Returns

Promise<void>

Implementation of

Adapter.pauseSchedule


peekCollect()

peekCollect(task, collectKey): Promise<string[]>

Defined in: packages/taskora/dist/memory/index.d.mts:122

Read the current collect buffer for (task, collectKey) as raw serialized items. Non-destructive: never drains, never resets TTLs, never alters flush-trigger state. Returns items in dispatch order (oldest → newest). Empty array if the buffer has no items, was just flushed, or was never created.

Called by Task.peekCollect / BoundTask.peekCollect; deserialization is done at the Task layer so the adapter stays schema-agnostic.

Parameters

ParameterType
taskstring
collectKeystring

Returns

Promise<string[]>

Implementation of

Adapter.peekCollect


promoteAll()

promoteAll(): void

Defined in: packages/taskora/dist/memory/index.d.mts:39

Internal

Returns

void


promoteDelayed()

promoteDelayed(task): void

Defined in: packages/taskora/dist/memory/index.d.mts:37

Internal

Parameters

ParameterType
taskstring

Returns

void


removeSchedule()

removeSchedule(name): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:170

Parameters

ParameterType
namestring

Returns

Promise<void>

Implementation of

Adapter.removeSchedule


renewSchedulerLock()

renewSchedulerLock(token, ttl): Promise<boolean>

Defined in: packages/taskora/dist/memory/index.d.mts:185

Parameters

ParameterType
tokenstring
ttlnumber

Returns

Promise<boolean>

Implementation of

Adapter.renewSchedulerLock


resumeSchedule()

resumeSchedule(name, nextRun): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:183

Parameters

ParameterType
namestring
nextRunnumber

Returns

Promise<void>

Implementation of

Adapter.resumeSchedule


retryAllFromDLQ()

retryAllFromDLQ(task, limit): Promise<number>

Defined in: packages/taskora/dist/memory/index.d.mts:160

Parameters

ParameterType
taskstring
limitnumber

Returns

Promise<number>

Implementation of

Adapter.retryAllFromDLQ


retryFromDLQ()

retryFromDLQ(task, jobId): Promise<boolean>

Defined in: packages/taskora/dist/memory/index.d.mts:159

Parameters

ParameterType
taskstring
jobIdstring

Returns

Promise<boolean>

Implementation of

Adapter.retryFromDLQ


setProgress()

setProgress(task, jobId, value): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:144

Parameters

ParameterType
taskstring
jobIdstring
valuestring

Returns

Promise<void>

Implementation of

Adapter.setProgress


stalledCheck()

stalledCheck(task, maxStalledCount): Promise<{ failed: string[]; recovered: string[]; }>

Defined in: packages/taskora/dist/memory/index.d.mts:140

Parameters

ParameterType
taskstring
maxStalledCountnumber

Returns

Promise<{ failed: string[]; recovered: string[]; }>

Implementation of

Adapter.stalledCheck


subscribe()

subscribe(_tasks, handler): Promise<() => Promise<void>>

Defined in: packages/taskora/dist/memory/index.d.mts:151

Parameters

ParameterType
_tasksstring[]
handler(event) => void

Returns

Promise<() => Promise<void>>

Implementation of

Adapter.subscribe


throttleEnqueue()

throttleEnqueue(task, jobId, data, options, throttleKey, max, windowMs): Promise<boolean>

Defined in: packages/taskora/dist/memory/index.d.mts:88

Parameters

ParameterType
taskstring
jobIdstring
datastring
options{ _v: number; concurrencyKey?: string; concurrencyLimit?: number; delay?: number; expireAt?: number; maxAttempts?: number; priority?: number; }
options._vnumber
options.concurrencyKey?string
options.concurrencyLimit?number
options.delay?number
options.expireAt?number
options.maxAttempts?number
options.priority?number
throttleKeystring
maxnumber
windowMsnumber

Returns

Promise<boolean>

Implementation of

Adapter.throttleEnqueue


tickScheduler()

tickScheduler(now): Promise<object[]>

Defined in: packages/taskora/dist/memory/index.d.mts:177

Parameters

ParameterType
nownumber

Returns

Promise<object[]>

Implementation of

Adapter.tickScheduler


trimCompleted()

trimCompleted(task, before, maxItems): Promise<number>

Defined in: packages/taskora/dist/memory/index.d.mts:162

Parameters

ParameterType
taskstring
beforenumber
maxItemsnumber

Returns

Promise<number>

Implementation of

Adapter.trimCompleted


trimDLQ()

trimDLQ(task, before, maxItems): Promise<number>

Defined in: packages/taskora/dist/memory/index.d.mts:161

Parameters

ParameterType
taskstring
beforenumber
maxItemsnumber

Returns

Promise<number>

Implementation of

Adapter.trimDLQ


updateScheduleNextRun()

updateScheduleNextRun(name, config, nextRun): Promise<void>

Defined in: packages/taskora/dist/memory/index.d.mts:181

Parameters

ParameterType
namestring
configstring
nextRunnumber

Returns

Promise<void>

Implementation of

Adapter.updateScheduleNextRun

Released under the MIT License.