如果windows服务停止,NserviceBus是否完成消息处理?
我已将nservicebus程序安装为windows服务。 当我停止windows服务时,NserviceBus是否会等待当前消息处理程序完成 如果答案是否定的,那么我可能会做一半的工作,并出现在不正确的状态(如果我的程序使用数据库) 我做了一个实验——创建了一个程序,当它接收到消息时执行Thread.Sleep(100*1000)。 当我在消息处理过程中停止windows服务时,它会快速停止,不会等待100秒。所以我假设答案是否定的如果windows服务停止,NserviceBus是否完成消息处理?,nservicebus,Nservicebus,我已将nservicebus程序安装为windows服务。 当我停止windows服务时,NserviceBus是否会等待当前消息处理程序完成 如果答案是否定的,那么我可能会做一半的工作,并出现在不正确的状态(如果我的程序使用数据库) 我做了一个实验——创建了一个程序,当它接收到消息时执行Thread.Sleep(100*1000)。 当我在消息处理过程中停止windows服务时,它会快速停止,不会等待100秒。所以我假设答案是否定的 如果答案是肯定的,请告诉我源代码中发生这种情况的地方。NSB
如果答案是肯定的,请告诉我源代码中发生这种情况的地方。NSB不会等待,因此当前消息将回滚到队列。所有处理程序都是在一个事务中运行的,因此不应存在陷入不一致状态的风险。假设您的数据库已登记在dtc事务中。如果不是,你无论如何都会不一致,所以所有的赌注都没有了。Thx。这就是我需要的答案。