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.