NServiceBus:取消计划任务

NServiceBus:取消计划任务,nservicebus,nservicebus-sagas,Nservicebus,Nservicebus Sagas,我创建并启动了一个计划任务 Schedule.Every(TimeSpan.FromMinutes(1)).Action("TaskName",TaskMethod); 现在,如果我的saga句柄被一条标记为完成的传入消息调用,那么我创建的计划任务不会被取消 如何取消任务?从: 创建任务时,将为其提供唯一标识符。这个 任务的标识符以消息形式发送到超时管理器。 当超时并且超时管理器返回消息时 包含具有计划任务的端点的标识符 端点使用该标识符从其内部任务列表中获取和调用任务 及 你可以把一个计划好

我创建并启动了一个计划任务

Schedule.Every(TimeSpan.FromMinutes(1)).Action("TaskName",TaskMethod);
现在,如果我的saga句柄被一条标记为完成的传入消息调用,那么我创建的计划任务不会被取消

如何取消任务?

从:

创建任务时,将为其提供唯一标识符。这个 任务的标识符以消息形式发送到超时管理器。 当超时并且超时管理器返回消息时 包含具有计划任务的端点的标识符 端点使用该标识符从其内部任务列表中获取和调用任务

你可以把一个计划好的任务看作是一个简单的永无止境的故事

因此,任务是在端点级别调度的——仅仅因为您从saga调用了任务,并不意味着该任务正在与saga相同的范围内执行


在他们给出的示例中,调度器是在总线启动时创建的,大概只有在主机容器停止运行时才会停止

是否有任何内置的计划程序允许我创建一个可以取消的任务?或者我应该使用像Quartz.Net这样的东西吗?在NServiceBus中可能有一些未记录的方法来取消任务,但是如果失败了,是的,你应该使用另一个具有更丰富API的调度器。计划的任务就像一个简单的永无止境的传奇。如果您希望计划的任务更加复杂或结束,您可以使用所需的任何业务逻辑编写完整的传奇故事。