JMS(ActiveMQ) - 仅在消耗了另一个事件后才消耗的事件

时间:2014-12-03 11:18:54

标签: java spring jms activemq jmstemplate

我基本上有2个事件:

UserCreatedEvent.class 和 UserUpdatedEvent.class

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

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

最后,我想指出我正在使用JMSTemplate(spring)进行事件。 with activemq。

1 个答案:

答案 0 :(得分:0)

您可以将相关ID添加到UpdateEvent,其ID为CreateEvent。如果设置了相关标识,则消费者不应使用UpdateEvent,但尚未使用具有该标识的CreateEvent。

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

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