Creates a new RabbitMQ queue adapter.
Runtime services for clock conversion (absolute → relative TTL)
Optionaloptions: RabbitMqQueueOptions
RabbitMQ connection and configuration options
OptionalisM70c: present only when the connection exposes on?; its absence is
unknown reachability, not false.
A fault returns false immediately; otherwise a throwaway channel round trip
measures reachability. QueueService bounds and caches this probe.
Acknowledges a job as successfully processed.
Job name
Job ID (stable public identity)
OptionalclaimToken: string
Opaque claim token returned from reserve (prevents stale settlement)
Resolves when acknowledged
Moves a job to the dead letter queue.
Job name
Job ID (stable public identity)
Current timestamp in ms (for dead-letter timestamp)
OptionalclaimToken: string
Opaque claim token returned from reserve (prevents stale settlement)
Resolves when dead-lettered
Enqueues a job.
The job to enqueue
Resolves when enqueued
Internal
Why this adapter cannot use a job name, or null when it can. The derived
<prefix>.<name>.ready / .delay queue names (the longest suffixes) must
each fit an AMQP short string. The text never quotes the name, which may
be caller data. QueueService calls this at process() and
addRecurring() so an unusable name fails at registration rather than on
every poll.
The job name
The refusal text, or null
Requeues a job with a new available timestamp.
Job name
Job ID (stable public identity)
When the job becomes available again
Updated attempt count
OptionalclaimToken: string
Opaque claim token returned from reserve (prevents stale settlement)
Resolves when requeued
Reserves up to limit due jobs. Redis scripts use server time; adapters
without a server clock compare availableAtMs to nowMs.
CLAIMS jobs: moves them from ready set to processing set. A reserved job is not returned by subsequent reserve calls.
Job name
Maximum jobs to reserve
The reserved jobs
RabbitMQ queue adapter implementation.
Uses AMQP 0-9-1 via amqplib. Implements the claim-based reserve pattern to prevent double-dispatch. Uses polling via basicGet (NOT push consume) and per-message TTL + DLX for delayed re-delivery.
Key topology per job name
<n>:he.queue.<n>.ready- Ready queue (polling via basicGet)he.queue.<n>.delay- Delay queue (TTL + DLX → ready)he.queue.<n>.dead- Dead queue (final resting place)All queues are reached via the default exchange (routing key = queue name).
Since
0.1.0