为每条消息提供自定义延迟(rabbitmq)?

时间:2017-06-20 11:05:30

标签: node.js rabbitmq

我需要延迟我在特定时间生成的每条消息。 据我所知rabbitmq-delayed-message-exchange插件允许我这样做,但我被警告说它没有正确缩放,这是一个明确的要求。 (最近是否有任何更新修复扩展问题?)

因此,替代方案是使用TTL和DLQ。但是,通过这种方法,您可以设置创建交换而不是实际消息的时间,这意味着我无法为不同的消息设置不同的时间。 我错过了什么吗?

我的用例:基本上我会收到特定的约会"来自客户,我必须在约会对象中提供的特定时间存储并发送回客户端。我想通过在每条消息上指定延迟来实现这一点,这样我的消费者就不能实现等待逻辑。

1 个答案:

答案 0 :(得分:1)

为什么不使用per-queue message TTL,并为每个要设置的不同TTL设置不同的队列,最初通过与特定TTL相关的密钥直接交换来发布消息?

然后为所有这些队列配置了相同的dead letter exchange,他们将最终进入" final"为您的消费者排队所需的延迟。

当然,如果延迟的可能值太多,那就太棒了。