Nservicebus 阻止分发服务器向终止的工作进程发布消息

Nservicebus 阻止分发服务器向终止的工作进程发布消息,nservicebus,nservicebus-distributor,Nservicebus,Nservicebus Distributor,我与NServiceBus分销商有一个小问题,这可能是我自己的无知,但这就是正在发生的事情- 我有- A.两台机器上运行的两个工作进程(服务器进程) B1分销商向员工发布消息的流程 C1个客户端进程向分发服务器发布消息 现在,当所有服务器都启动并运行时,一切正常 比方说,我现在关闭了辅助进程1,这样只有辅助进程2在运行。我现在等待一段时间,然后开始将消息发布到分发服务器,我注意到的是,总是有一些消息最终排队到工作进程#1(已关闭的进程) 现在我想这是因为在关闭服务器之前,服务器已经向分发服务器指

我与NServiceBus分销商有一个小问题,这可能是我自己的无知,但这就是正在发生的事情-

我有-
A.两台机器上运行的两个工作进程(服务器进程)
B1分销商向员工发布消息的流程
C1个客户端进程向分发服务器发布消息

现在,当所有服务器都启动并运行时,一切正常

比方说,我现在关闭了辅助进程1,这样只有辅助进程2在运行。我现在等待一段时间,然后开始将消息发布到分发服务器,我注意到的是,总是有一些消息最终排队到工作进程#1(已关闭的进程)

现在我想这是因为在关闭服务器之前,服务器已经向分发服务器指示它已经准备好,分发服务器正在响应这些控制消息

我的问题是,有没有一种方法可以优雅地关闭连接到分发服务器的工作进程,通知它不再有消息排队


谢谢。

通过向工作节点发送ChangeNumberOfWorkerThread消息,您可以逐渐减少工作节点的工作线程数。网格目录下有一个管理工具(我想),您可以使用,只需进入分发服务器队列和每个工作队列。

Ahh…这个人自己。谢谢你。我确实试着按照你的建议去做,但并没有完全按照我的希望去做。分发服务器仍然会向线程数减少到0的工作线程发送一些消息。我想知道的是,是否有一条“unsubscribe”消息可以从工作组发送到分发组,以离开分发组,这样就不会有更多的消息转发到分发组?谢谢。如果工作人员在过去发送了分发服务器就绪消息,而分发服务器尚未发送消息,那么您所经历的行为就会发生。这是因为分发服务器使用FIFO队列来保存准备工作的列表。