Axon:截止日期与 EventScheduler

Axon: Deadline vs EventScheduler

你好,我正在努力想出 DeadlineManager 安排未来事件的实现和 EventScheduler 之间的区别,以及两者的最佳用例是什么。

假设我需要根据今天发生的命令安排一个任务在 24 小时内执行。不时发生另一个事件或命令,使预定的事件过时,所以现在我需要取消预定的事件。

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

安排活动或截止日期之间的主要区别在于您希望在预定时间过去后发生什么。

当您安排活动时,该活动将始终在安排的时间过后添加到事件存储区。

当你安排截止日期时,不会直接添加事件,而是会调用一个 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