如何在NServiceBus中取消长时间运行的消息处理程序

时间:2016-01-07 20:30:23

标签: multithreading process backgroundworker nservicebus msmq

我有长时间运行的消息处理程序,所以我需要选择取消它。我需要知道NServiceBus是否提供了任何设计方法。

什么是替代解决方案?

1 个答案:

答案 0 :(得分:0)

NServiceBus,尽管在很多方面都很棒,但它没有提供任何内置的方法来取消消息处理,就像后台任务运行器一样。

但是,您可以从处理程序调用类似hangfire的内容,它确实提供了这种脱机任务管理。尽管它设计用于IIS,但它可以托管在另一个容器中,例如windows service

作为对这个答案的编辑,我发现hangfire实际上并没有取消已经开始的工作,至少不是整齐的方式。您可以删除正在进行的作业,但这没有取消语义,因为在某些情况下,hangfire服务器不会处理队列中的其他作业(例如,如果您正在运行单线程)。