在Axon中顺序处理两个事件

时间:2020-02-29 06:28:56

标签: rabbitmq axon

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

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

FROM node:4.4.2
EXPOSE 3000
ENV NODE_ENV test
WORKDIR /app
COPY ["package.json", "npm-shrinkwrap.json*", "./"]
RUN npm install --silent
COPY . /app
CMD node server.js

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

希望这对您有帮助吗?