我需要延迟我在特定时间生成的每条消息。
据我所知rabbitmq-delayed-message-exchange
插件允许我这样做,但我被警告说它没有正确缩放,这是一个明确的要求。 (最近是否有任何更新修复扩展问题?)
因此,替代方案是使用TTL和DLQ。但是,通过这种方法,您可以设置创建交换而不是实际消息的时间,这意味着我无法为不同的消息设置不同的时间。 我错过了什么吗?
我的用例:基本上我会收到特定的约会"来自客户,我必须在约会对象中提供的特定时间存储并发送回客户端。我想通过在每条消息上指定延迟来实现这一点,这样我的消费者就不能实现等待逻辑。
答案 0 :(得分:1)
为什么不使用per-queue message TTL,并为每个要设置的不同TTL设置不同的队列,最初通过与特定TTL相关的密钥直接交换来发布消息?
然后为所有这些队列配置了相同的dead letter exchange,他们将最终进入" final"为您的消费者排队所需的延迟。
当然,如果延迟的可能值太多,那就太棒了。