TTL сообщения: при публикации задают expiration (миллисекунды). TTL очереди: x-message-ttl при объявлении очереди; все сообщения без своего expiration получают этот TTL. Истекшие сообщения удаляются или отправляются в DLQ (x-dead-letter-exchange). В Go используют для отложенных заданий: публикация с TTL или через delayed exchange плагин. Ограничение: до истечения TTL сообщение не удаляется мгновенно.
ch.Publish("", "queue", false, false, amqp.Publishing{
Body: []byte("data"),
Expiration: "60000",
})