【问题标题】:MSMQ max count message notificationMSMQ 最大计数消息通知
【发布时间】:2015-03-11 19:09:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: msmq windows-services msmq


    【解决方案1】:

    对此有商业解决方案 - QueueMonitor

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

    编辑

    此场景的一些提示:

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

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 链接指向一个实用程序,所以这里没有太多要复制的内容。但是我意识到我可以为 OPs 场景提供更多提示并相应地编辑答案。
    • 感谢 Dejan 改进了您的帖子。我实际上的意思是总结优秀的工具,但你所做的更好。 :)
    【解决方案2】:

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

    还有许多其他解决方案,包括SCOM management pack,以及一些第三方解决方案,例如evtools,或者您可以使用System.Messaging 自行推出。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2010-09-17
      • 2011-01-18
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多