轴突:截止日期与事件调度程序



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

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

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

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

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

当您安排截止时间时,不会直接添加任何事件,而是将调用一个DeadlineHandler注释函数,然后您可以根据聚合或 saga 的当前状态决定要做什么(如果有的话(。因此,除非您在截止时间处理程序中自己应用事件,否则不会与事件存储进行交互。

请注意,两者都可以在计划时间结束之前取消,使用计划事件时返回的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

最新更新