【发布时间】:2017-01-04 11:47:34
【问题描述】:
我正在编写一个 C# 控制台应用程序(Windows 计划任务)来监控 Rabbit MQ 的状态。因此,如果队列关闭(服务关闭、连接超时或任何其他原因),它将发送通知邮件。我使用过 RabbitMQ .Net 客户端(4.1.1 版)。基本上我正在检查 CreateConnection() 是否成功。
private static void CheckRabbitMQStatus()
{
ConnectionFactory factory = new ConnectionFactory();
factory.Uri = "amqp://guest:guest@testserver:5672/";
IConnection conn = null;
try
{
conn = factory.CreateConnection();
conn.Close();
conn.Dispose();
}
catch (Exception ex)
{
if (ex.Message == "None of the specified endpoints were reachable")
{
//send mail MQ is down
}
}
}
这是实现这一目标的正确方法吗? Rabbit MQ 有几个可用的工具和插件,但我想要一个简单的 C# 解决方案。
【问题讨论】:
-
ex的具体类型是什么?比较消息可能会在以后的版本中中断... -
异常类型为
RabbitMQ.Client.Exceptions.BrokerUnreachableException-- 话虽如此,消息与2020年8月相同¯\_(ツ)_/¯