我们有一组运行Windows应用程序的客户端PC,这是一个客户端,可以打开与服务器上运行的RabbitMQ实例的连接。
我们的客户端应用程序在启动时会打开一个连接。如果由于出现错误(例如RabbitMQ已达到最大连接限制)而无法打开连接,则会显示一条错误消息。
我们的应用程序中存在一个错误,该错误有时会使连接保持打开状态。我们尚无法修复该错误(因为)是因为在1月1日这一天之前不对应用程序进行修补。
因此自然而然地我们想告诉RabbitMQ关闭所有连接(我们可以在一夜之间完成此操作-没有人应该让应用程序在一夜之间运行-但是如果我们在白天关闭它们,那就没关系了:与RabbitMQ相关直到下月中旬,才需要或不使用客户端应用程序的功能,但无法打开连接(无法关闭)。
但是重新启动RabbitMQ会使它们全部打开。并且 rabbitmqctl close_all_connections --global 也不关闭连接(也许它向客户端发送关闭消息,但是如果客户端不再监听,则保持连接打开)。
有什么办法可以迫使RabbitMQ关闭所有连接,而无需在Erlang中编写我们自己的应用程序来终止进程?