rabbitmqadmin declare queue name=myqueue arguments={"x-message-ttl":60000}The x-message-ttl argument sets the message time to live in milliseconds. Here, 60000 means 60 seconds.
When a message's TTL expires, RabbitMQ removes it from the queue. If a dead-letter exchange is configured, the message is sent there; otherwise, it is discarded.
Option A correctly sets TTL to 30000 ms (30 seconds) and dead-letters expired messages to 'dlx'. Option A disables dead-lettering. Option A sets TTL to 3000 ms (3 seconds). Option A is identical to B and also valid.
RabbitMQ removes expired messages lazily during queue operations. If no consumers are connected, expired messages may remain until the queue is accessed.
First create the dead-letter exchange, then declare the queue with TTL and dead-letter settings, publish messages, and finally consume from the dead-letter queue to verify.