C# 如何暂时停止Exchange/队列接收邮件?

C# 如何暂时停止Exchange/队列接收邮件?,c#,rabbitmq,C#,Rabbitmq,我的部署如下所示: 客户端->中继服务器->服务器 中继服务器是一个rabbitmq服务,它包含一个exchange和许多绑定到此exchange的队列。使用映射路由密钥推送到此exchange的任何消息都会将该消息推送到相应的队列 现在,我的要求是,当服务器关闭时,我应该避免/阻止“中继服务器”接受任何进一步的消息 请帮忙。死消息队列不工作。我将尝试回答您的问题,因为我目前正在使用RabbitMQ。据我所知,并没有办法阻止消息被推送到队列中。你必须通过程序实现这一点 步骤1:在将消息推送到队列

我的部署如下所示:

客户端->中继服务器->服务器

中继服务器是一个rabbitmq服务,它包含一个exchange和许多绑定到此exchange的队列。使用映射路由密钥推送到此exchange的任何消息都会将该消息推送到相应的队列

现在,我的要求是,当服务器关闭时,我应该避免/阻止“中继服务器”接受任何进一步的消息


请帮忙。死消息队列不工作。

我将尝试回答您的问题,因为我目前正在使用RabbitMQ。据我所知,并没有办法阻止消息被推送到队列中。你必须通过程序实现这一点

步骤1:在将消息推送到队列之前,轮询服务器的运行状态

步骤2:若服务器正在运行,则继续将消息推送到队列中,若不知道要做什么


希望对您有所帮助。

服务器可以使用
x-expires
设置创建队列,这意味着:

队列在被自动删除之前可以不使用多长时间 (毫秒)

因此,如果服务器关闭,关联的队列将被删除,并且不会有消息排队


我对rabbitmq一无所知,但由于这么长时间内没有人响应,我将提供一些似乎合理且可行的技术:在客户端和中继服务器之间设置一个重定向服务器,以便在中继服务器启动时(或者如果您告诉它启动时)将请求传递给中继服务器。重定向服务器应该有99.9%的正常运行时间,然后所有的更新和东西都可以在中继服务器上完成。