Существует плагин для RabbitMQ с именем RabbitMQ Delayed Message Plugin .Ссылка содержит пример, так как это запись в блоге от RabbitMQ.
Она в основном позволяет опубликовать сообщение с заголовком headers.put("x-delay", 5000);
, что вам нужно.
Но я думаючто вам нужно использовать новый, специализированный обмен для этого.К счастью, args.put("x-delayed-type", "direct");
может иметь любой из существующих в настоящее время типов обмена (также пользовательских).
Я бы не рекомендовал делать это на стороне сервера (node-js), потому что, если вы не сохраните сообщение вбазы данных, он будет потерян, если сервер будет перезапущен.Кроме того, вы можете оказаться в ситуации, когда вас ожидает много тайм-аутов.
Очевидно, что плагин сохраняет сообщения, так что если сервер RabbitMQ будет перезапущен, сообщение все равно будет отправлено.