依次处理轴突中的两个事件

问题描述 投票:0回答:1

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

由于我的第二个事件取决于第一个事件的执行结果。我正在使用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());
 }
rabbitmq axon
1个回答
0
投票

您介意在需要用例的情况下详细说明吗?对于您的问题,我已经准备好答案,但是也许我可以根据您所需要的情况,建议采取其他措施。

事件将按照给您使用的消息源的顺序处理。

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

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

如果因此希望在Event1之前处理Event2,则需要先将其发布。因此,如果您需要有保证的订单,那么控制发布顺序至关重要。 Axon不提供用于调整事件处理顺序的句柄,因为如果您的系统不直接依赖事件顺序,则更为理想。处理组件应该自己使用,而不是对此事做任何假设。

希望这可以帮助您解决Amit!

© www.soinside.com 2019 - 2024. All rights reserved.