Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果windows服务停止,NserviceBus是否完成消息处理?_Nservicebus - Fatal编程技术网

如果windows服务停止,NserviceBus是否完成消息处理?

如果windows服务停止,NserviceBus是否完成消息处理?,nservicebus,Nservicebus,我已将nservicebus程序安装为windows服务。 当我停止windows服务时,NserviceBus是否会等待当前消息处理程序完成 如果答案是否定的,那么我可能会做一半的工作,并出现在不正确的状态(如果我的程序使用数据库) 我做了一个实验——创建了一个程序,当它接收到消息时执行Thread.Sleep(100*1000)。 当我在消息处理过程中停止windows服务时,它会快速停止,不会等待100秒。所以我假设答案是否定的 如果答案是肯定的,请告诉我源代码中发生这种情况的地方。NSB

我已将nservicebus程序安装为windows服务。 当我停止windows服务时,NserviceBus是否会等待当前消息处理程序完成

如果答案是否定的,那么我可能会做一半的工作,并出现在不正确的状态(如果我的程序使用数据库)

我做了一个实验——创建了一个程序,当它接收到消息时执行Thread.Sleep(100*1000)。 当我在消息处理过程中停止windows服务时,它会快速停止,不会等待100秒。所以我假设答案是否定的


如果答案是肯定的,请告诉我源代码中发生这种情况的地方。

NSB不会等待,因此当前消息将回滚到队列。所有处理程序都是在一个事务中运行的,因此不应存在陷入不一致状态的风险。假设您的数据库已登记在dtc事务中。如果不是,你无论如何都会不一致,所以所有的赌注都没有了。

Thx。这就是我需要的答案。