Поддерживает ли RabbitMQ выполнение процесса из очереди по времени?
Могу ли я хранить время в RabbitMQ для обработчика вызовов в это время? RabbitMQ поддерживает это?
1 ответ
Решение
Да, это поддерживается, но только через дополнительный плагин.
Есть более датированный об этом
Просто сказать, что вам нужно установить rabbitmq-plugins enable rabbitmq_delayed_message_exchange
и добавьте новый заголовок к вашему сообщению:
byte[] messageBodyBytes = "delayed payload".getBytes();
AMQP.BasicProperties.Builder props = new AMQP.BasicProperties.Builder();
headers = new HashMap<String, Object>();
headers.put("x-delay", 5000);
props.headers(headers);
channel.basicPublish("my-exchange", "", props.build(), messageBodyBytes);
Так что нужно поставить x-delay
значение в миллисекундах после обработки этого сообщения.