【问题标题】:JMS Delayed Delivery based on conditional variable(s)基于条件变量的 JMS 延迟交付
【发布时间】: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的消息设置的条件,消息被解锁并传递。

这样的策略存在吗?

【问题讨论】:

    标签: jms rabbitmq activemq


    【解决方案1】:

    有点,是的,使用 RabbitMQ。

    你需要两件事:

    1. 检查条件的代码 - 您的代码,而不是 RabbitMQ 代码。
    2. 延迟消息交换插件https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/

    RabbitMQ 不具备处理逻辑语句或代码的能力。但是您已经在编写代码,因此您可以在代码中轻松地做到这一点。

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

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2017-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多