콘텐츠로 이동

HyperdriveJobQueueConfig

Defined in: packages/messaging/src/adapters/cloudflare/hyperdrive-job-queue.ts:84

Options of the queues that lease the jobs dequeue() returns.

T = unknown

optional indexNames?: Partial<JobQueueIndexNames>

Defined in: packages/messaging/src/adapters/cloudflare/hyperdrive-job-queue.ts:88


optional initializeSchema?: boolean

Defined in: packages/messaging/src/adapters/cloudflare/hyperdrive-job-queue.ts:96

Whether init() creates the table and indexes (IF NOT EXISTS). Each new queue runs those statements before its first query, which in a Worker means every request. Set it to false when migrations create the schema, for example from buildJobQueueSchemaSql().

true

optional leaseMs?: number

Defined in: packages/messaging/src/queue/job-queue.interface.ts:64

How long a dequeued job may stay processing before it is due again (default: Infinity, no lease). If it is neither completed nor failed by then, for example because the worker stopped mid-job, the next dequeue() counts the lost attempt as failed (error: "LEASE_EXPIRED") and makes the job due again, or fails it when no attempts are left. Set it above the longest time a job can take: a lease is not renewed, and a worker that outlives it can still complete or fail the job while another worker has it. dequeue() leaves the jobs its caller names as still running alone, which is how JobProcessor keeps a job it is still running from being run again or counted as lost.

JobLeaseOptions.leaseMs


optional onLeaseExpired?: (job) => void | Promise<void>

Defined in: packages/messaging/src/queue/job-queue.interface.ts:72

Called by dequeue() for each job whose lease had expired, once the job is stored pending again or, with no attempts left, failed. dequeue() waits for it before it leases the job it returns, which may be the same one, so it does not shorten that lease. What it throws is logged and does not stop the dequeue.

Job

void | Promise<void>

JobLeaseOptions.onLeaseExpired


optional tableName?: string

Defined in: packages/messaging/src/adapters/cloudflare/hyperdrive-job-queue.ts:87

"kmsg_jobs"