Skip to content

Add DLQ requeue API endpoint#66

Merged
llambeau merged 3 commits into
masterfrom
feature/dlq-requeue
Jan 28, 2026
Merged

Add DLQ requeue API endpoint#66
llambeau merged 3 commits into
masterfrom
feature/dlq-requeue

Conversation

@llambeau

Copy link
Copy Markdown
Contributor

Add POST /dlq/:queueName/requeue endpoint to requeue messages from a dead letter queue back to their original queue or a specified override.

Features:

  • Support requeue all messages or a specific count via query parameter
  • Auto-detect original queue from RabbitMQ x-death headers
  • Allow overriding target exchange/routing key via request body
  • Return count of requeued/failed messages with error details

Files changed:

  • src/queue/index.ts: Add RequeueOptions/RequeueResult types and requeue method
  • src/queue/drivers/amqp.ts: Implement _requeue using channel.get()
  • src/queue/drivers/memory.ts: Implement _requeue for testing
  • src/server/rest/index.ts: Add /dlq/:queueName/requeue endpoint

@llambeau llambeau force-pushed the feature/dlq-requeue branch 5 times, most recently from cd816fa to d4733c0 Compare January 28, 2026 10:22
llambeau and others added 2 commits January 28, 2026 11:30
Add POST /dlq/:queueName/requeue endpoint to move messages from a dead
letter queue to a specified destination queue using RabbitMQ Shovel plugin.

API:
  POST /dlq/:queueName/requeue?count=N
  Body: { "destinationQueue": "target-queue" }
  Response: { "requeued": N, "failed": 0, "errors": [] }

Features:
- Uses RabbitMQ Shovel plugin for atomic message transfers
- Optional count parameter to limit messages moved
- Clear error messages when shovel plugin is not enabled
Add endpoint to retrieve information about all configured queues from
RabbitMQ Management API, including message count and consumer count.

API:
  GET /queues
  Response: { "queues": [{ "name", "messages", "consumers", "state" }] }

Implementation:
- src/queue/index.ts: Add QueueInfo type and getQueuesInfo method
- src/queue/drivers/amqp.ts: Query /api/queues/{vhost}/{name} for each queue
- src/queue/drivers/memory.ts: Return queue lengths from internal state
- src/server/rest/index.ts: Add /queues endpoint using config topology

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@llambeau llambeau force-pushed the feature/dlq-requeue branch from 76098e6 to a1ae350 Compare January 28, 2026 10:30
@llambeau llambeau merged commit c37ae2c into master Jan 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant