Axon:截止日期与EventScheduler

时间:2020-01-16 18:17:20

标签: axon

您好,我正在努力做出安排未来事件和DeadlineManager的{​​{1}}实现与最佳的使用情况之间的区别。

说,我需要根据今天发生的命令安排要在24小时内执行的任务。从那时起,可能会发生另一个使计划事件过时的事件或命令,因此现在我需要取消计划事件。

我可以互换使用吗?如果不是-在这种情况下,最佳选择是什么?或者没有足够的信息?是什么让我决定使用一个而不是另一个?

1 个答案:

答案 0 :(得分:2)

安排事件或截止日期之间的主要区别是您希望在安排的时间过去之后发生什么。

安排事件时,经过预定时间后,该事件将始终添加到事件存储中。

安排最后期限时,不会直接添加任何事件,而是会调用一个DeadlineHandler带注释的函数,然后您可以在该函数中根据聚合或传奇的当前状态来确定所需的内容做(如果有的话)。因此,除非您自己在截止日期处理程序中应用事件,否则不会与事件存储区进行交互。

请注意,也可以在预定时间结束之前取消两者,可以使用安排事件时返回的ScheduleToken或在截止日期的情况下使用deadineId及其名称。

一些其他信息可以在参考指南中找到:

https://docs.axoniq.io/reference-guide/configuring-infrastructure-components/deadlines

https://docs.axoniq.io/reference-guide/implementing-domain-logic/complex-business-transactions/deadline-handling