您好,我正在努力想出调度未来事件的DeadlineManager实现和EventScheduler之间的区别,以及这两者的最佳用例是什么。
假设我需要根据今天发生的一条命令安排一项任务在24小时内执行。从现在到那时,可能会发生另一个事件或命令,使计划的事件过时,因此现在我需要取消计划的事件。
我可以互换使用吗?如果不是-在这种情况下,最佳选择是什么,或者是没有足够的信息?是什么促使我决定使用其中一个而不是另一个?
发布于 2020-01-17 02:54:18
计划一个事件或一个截止日期之间的主要区别在于,当您的计划时间已过时,您希望发生什么。
安排事件时,该事件将始终在计划时间过后添加到事件存储中。
当您计划一个截止日期时,不会直接添加任何事件,而是会调用一个带DeadlineHandler注释的函数,在该函数中,您可以根据聚合或saga的当前状态来决定您想要做什么(如果有的话)。因此,除非您自己在deadline处理程序中应用事件,否则将不会与eventstore进行交互。
请注意,也可以在计划时间结束之前取消这两个操作,使用在安排事件时返回的ScheduleToken,或者在截止日期的情况下使用deadineId及其名称。
可以在参考指南中找到一些进一步的信息:
https://docs.axoniq.io/reference-guide/configuring-infrastructure-components/deadlines
https://stackoverflow.com/questions/59775630
复制相似问题