Rabbitmq 在Axon中顺序处理两个事件

Rabbitmq 在Axon中顺序处理两个事件,rabbitmq,axon,Rabbitmq,Axon,我可以在要顺序处理的两个事件之间设置一个序列(或以一定的时间间隔执行)吗 在轴突中。这两个事件同时创建。下面是示例事件 因为我的第二个事件取决于第一个事件的执行结果。我正在使用RabbitMq发布消息 @EventHandler public void handleEvent1(Event1 event) { LOG.debug("An event of type {}, occured.", event.getClass().getName()); } @EventHandler

我可以在要顺序处理的两个事件之间设置一个序列(或以一定的时间间隔执行)吗 在轴突中。这两个事件同时创建。下面是示例事件

因为我的第二个事件取决于第一个事件的执行结果。我正在使用RabbitMq发布消息

@EventHandler
public void handleEvent1(Event1 event) {
    LOG.debug("An event of type {}, occured.", event.getClass().getName());
 }

@EventHandler
public void handleEvent2(Event2 event) {
    LOG.debug("An event of type {}, occured.", event.getClass().getName());
 }

你介意详细说明一下你需要它的用例吗? 我已经为你的问题准备好了答案,但也许我可以根据你需要的场景提出不同的行动方案

事件将按照它们给您使用的消息源的顺序进行处理

事件存储
,这意味着您将按照每个事件的全局索引顺序接收事件。
globalIndex
是每个
EventMessage
上的一个字段,用于表示它在整个事件存储中的顺序

当使用AMQP/RabbitMQ作为消息源时,类似的顺序也适用。队列中较早的事件将首先在消费端处理

因此,如果希望在
Event2
之前处理
Event1
,则需要在另一个之前发布它。因此,如果您需要有保证的订单,那么对发布订单的控制是关键。Axon不提供句柄来调整事件的处理顺序,因为如果您的系统不直接依赖事件顺序,它会更理想。处理组件应独立运行,而不是对事件进行假设

希望这能帮助你走出困境