【发布时间】:2015-10-27 23:20:44
【问题描述】:
我正在寻找在任何更流行的消息队列(AMPQ、RabbitMQ、ActiveMQ 等)中有条件地延迟消息传递的可能性。
例如:
System A sends a message(foo, condition = bar.x > 1);
System B sends a message(bar, x = 2)
由于系统B的消息满足系统A的消息设置的条件,消息被解锁并传递。
这样的策略存在吗?
【问题讨论】:
我正在寻找在任何更流行的消息队列(AMPQ、RabbitMQ、ActiveMQ 等)中有条件地延迟消息传递的可能性。
例如:
System A sends a message(foo, condition = bar.x > 1);
System B sends a message(bar, x = 2)
由于系统B的消息满足系统A的消息设置的条件,消息被解锁并传递。
这样的策略存在吗?
【问题讨论】:
有点,是的,使用 RabbitMQ。
你需要两件事:
RabbitMQ 不具备处理逻辑语句或代码的能力。但是您已经在编写代码,因此您可以在代码中轻松地做到这一点。
如果条件为真,则将您的消息发送到延迟消息交换。如果不是这样,请将您的消息发送到正常的交易所。
【讨论】: