Axon:截止日期与EventScheduler

问题描述 投票:0回答:1

您好,我正在竭尽所能安排未来事件安排的DeadlineManager实现与EventScheduler之间的区别,以及两者的最佳用例是什么。

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

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

axon
1个回答
0
投票

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

当您安排事件时,在计划的时间过去之后,该事件将始终添加到事件存储中。

[当您安排最后期限时,不会直接添加任何事件,而是会调用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

© www.soinside.com 2019 - 2024. All rights reserved.