MSMQ最大计数消息通知

时间:2015-01-13 18:14:07

标签: windows-services msmq

我们正在实施以快速存储消息并以断开连接模式处理它们。任何消息代理的典型用法。

管理要求之一是,如果队列消息(未处理)计数达到1000,则向管理员/开发人员发送自动通知。

  • 可以开箱即用吗?如果是,那怎么样?
  • 如果不是,那么我是否需要编写一些Windows服务(或任何类型的调度程序)来每隔x秒检查一次计数?

欢迎任何建议或过去的经验..

2 个答案:

答案 0 :(得分:1)

有商业解决方案 - QueueMonitor

免责声明:我是该软件的作者。

修改

此方案的一些提示:

  • 将消息的UseDeadLetterQueue设置为true - 这样一来,如果发送消息有任何问题,至少他们不会丢失,而是转移到系统的死信队列中。
  • 将消息的Recoverable属性设置为true - 它确实会降低性能,但对于这种长时间运行的情况,某些重新启动或失败会导致仅丢失消息的风险太大存储在内存中。
  • 如果邮件在一段时间后不再有效,您可以使用TimeToReachQueue自动删除它们。

答案 1 :(得分:0)

唯一(部分)内置解决方案是设置 MSMQ队列 performance counter,它为您提供服务器上专用队列的此信息。

还有许多其他解决方案,包括SCOM management pack和某些第三方解决方案,例如evtools,或者您可以使用System.Messaging滚动自己。

希望这有帮助。