基于条件变量的JMS延迟交付

时间:2015-08-05 09:12:17

标签: jms rabbitmq activemq

我正在寻找任何更受欢迎的消息队列(AMPQ,RabbitMQ,ActiveMQ等)的可能性,以有条件地延迟消息的传递。

例如:

System A sends a message(foo, condition = bar.x > 1);
System B sends a message(bar, x = 2)

由于系统B的消息满足系统A消息中设置的条件,因此消息将被解锁并传递。

是否存在此类策略?

1 个答案:

答案 0 :(得分:0)

使用RabbitMQ排序,是的。

你需要两件事:

  1. 检查条件的代码 - 您的代码,而不是RabbitMQ代码。
  2. 延迟邮件交换插件https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/
  3. RabbitMQ无法处理逻辑语句或代码。但是您已经在编写代码,因此您可以轻松地在代码中执行此操作。

    如果条件为真,则将您的消息发送到延迟消息交换。如果不是这样,请将您的信息发送到正常交换。