콘텐츠로 이동

SQLiteJobQueue

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:51

A job queue in a SQLite database.

With leaseMs, a processing job’s process_at holds its lease’s end, so the table needs no new column. A job already processing without a lease, taken by an earlier version or by a queue without leaseMs, cannot be told from one whose lease has expired, so it is due at once.

T

new SQLiteJobQueue<T>(options?): SQLiteJobQueue<T>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:56

SQLiteJobQueueOptions<T> = {}

SQLiteJobQueue<T>

cleanupTerminal(options?): Promise<number>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:435

Removes finished jobs: completed and failed ones by default, or those with the given statuses, and with olderThan, only those that finished before it.

JobQueueCleanupOptions | JobStatus[]

Promise<number>

JobQueue.cleanupTerminal


clear(): Promise<void>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:426

Promise<void>

JobQueue.clear


close(): void

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:466

void


complete(jobId, _result?): Promise<void>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:277

string

any

Promise<void>

JobQueue.complete


dequeue(options?): Promise<Job<T> | undefined>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:212

Takes the next due job and, with leaseMs, leases it. Jobs whose lease expired are due again first, or fail when they have no attempts left.

JobDequeueOptions = {}

Promise<Job<T> | undefined>

JobQueue.dequeue


enqueue(type, data, options?): Promise<Job<T>>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:155

string

T

number

number

Record<string, any>

number

Promise<Job<T>>

JobQueue.enqueue


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

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:294

Counts a failed attempt: the job is due again after retry.delayMs when retries are enabled and attempts are left, and fails otherwise. A completed job stays completed, even for a worker whose lease expired.

string

string | Error

JobRetryDirective = ...

Promise<void>

JobQueue.fail


getJob(jobId): Promise<Job<T> | undefined>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:396

string

Promise<Job<T> | undefined>

JobQueue.getJob


nextDueAt(): Promise<Date | undefined>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:380

When dequeue() next has work: the earliest due time of a pending job or, with leaseMs, lease expiry of a processing one. A time in the past means dequeue() has work now, even when it only settles an expired lease, so call dequeue() rather than checking size(). undefined when no job is pending or leased.

Promise<Date | undefined>

JobQueue.nextDueAt


peek(): Promise<Job<T> | undefined>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:341

The job dequeue() would take next, including one whose lease expired, shown as it will be once it is due again. Changes nothing.

Promise<Job<T> | undefined>

JobQueue.peek


remove(jobId): Promise<boolean>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:412

string

Promise<boolean>

JobQueue.remove


size(): Promise<number>

Defined in: packages/messaging/src/queue/sqlite-job-queue.ts:362

How many jobs are due now, including those whose lease expired.

Promise<number>

JobQueue.size