我可以在两个事件之间放置一个序列(或在一定时间间隔内执行)以顺序处理在轴突。这两个事件是同时创建的。下面是示例事件。
由于我的第二个事件取决于第一个事件的执行结果。我正在使用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());
}
您介意在需要用例的情况下详细说明吗?对于您的问题,我已经准备好答案,但是也许我可以根据您所需要的情况,建议采取其他措施。
事件将按照给您使用的消息源的顺序处理。
来自EventStore
,这意味着您将按照每个事件的全局索引顺序接收事件。 globalIndex
是每个EventMessage
上的字段,用于表示其在整个事件存储中的顺序。
当使用AMQP / RabbitMQ作为消息源时,具有类似的顺序。队列中较早的事件将首先在使用方处理。
如果因此希望在Event1
之前处理Event2
,则需要先将其发布。因此,如果您需要有保证的订单,那么控制发布顺序至关重要。 Axon不提供用于调整事件处理顺序的句柄,因为如果您的系统不直接依赖事件顺序,则更为理想。处理组件应该自己使用,而不是对此事做任何假设。
希望这可以帮助您解决Amit!