【问题标题】:JMS (ActiveMQ) - Event to be consumed only after another event was consumedJMS (ActiveMQ) - 只有在另一个事件被消费后才被消费的事件
【发布时间】:2023-03-28 14:48:01
【问题描述】:

我基本上有两个事件:

UserCreatedEvent.class 和 UserUpdatedEvent.class

我有一个同时产生这两个事件的流程(请记住,这只是一个示例) 是否有可能确保(通过一些配置)只有在第一个事件被消费后才会消费第二个事件? (我不希望在处理创建事件之前处理更新事件。)

P.S 这两个事件正在生成到不同的队列。

最后我想指出我正在使用 JMSTemplate (spring) 来处理事件。用activemq。

【问题讨论】:

    标签: java spring jms activemq jmstemplate


    【解决方案1】:

    您可以使用 CreateEvent 的 id 将关联 id 添加到 UpdateEvent。如果相关 id 已设置,但具有该 id 的 CreateEvent 尚未使用,则消费者不应使用 UpdateEvent。

    如果您有多个消费者,则应添加新事件 CreateEventProcessingFinished[id],该事件将被 UpdateEvent 消费者捕获并视为使用给定关联 ID 的事件的许可。

    但我认为最好通过改变架构来避免消息同步(如果可能的话)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2016-02-02
      • 1970-01-01
      相关资源
      最近更新 更多