MSMQ 最大计数消息通知
MSMQ max count message notification
我们正在实施 msmq 以快速存储消息并在断开连接模式下处理它们。任何消息代理的典型用法。
管理要求之一是在队列消息(未处理)计数达到 1000 时向 administrator/developers 发送自动通知。
- 开箱即用吗?如果是那么如何?
- 如果不是,那么我是否需要编写一些 windows 服务(或任何类型的调度程序)来每隔 x 秒检查一次计数?
欢迎任何建议或过去的经验..
唯一(部分)内置解决方案是设置 MSMQ 队列 performance counter,它为您提供服务器上专用队列的信息。
还有许多其他解决方案,包括 SCOM management pack, and some third party solutions like evtools, or you could roll you own using System.Messaging。
希望对您有所帮助。
有商业解决方案 - QueueMonitor。
免责声明:我是该软件的作者。
编辑
针对此场景的一些提示:
- 将消息的
UseDeadLetterQueue
设置为 true - 这样,如果传递消息有任何问题,至少它们不会丢失,但会移至系统的死信队列。
- 将消息的
Recoverable
属性 设置为 true - 它确实会降低性能,但对于这种长时间 运行 的情况,某些重启或失败会丢失消息的风险太大仅存储在内存中。
- 如果消息在一段时间后不再有效,您可以使用
TimeToReachQueue
自动删除它们。
我们正在实施 msmq 以快速存储消息并在断开连接模式下处理它们。任何消息代理的典型用法。
管理要求之一是在队列消息(未处理)计数达到 1000 时向 administrator/developers 发送自动通知。
- 开箱即用吗?如果是那么如何?
- 如果不是,那么我是否需要编写一些 windows 服务(或任何类型的调度程序)来每隔 x 秒检查一次计数?
欢迎任何建议或过去的经验..
唯一(部分)内置解决方案是设置 MSMQ 队列 performance counter,它为您提供服务器上专用队列的信息。
还有许多其他解决方案,包括 SCOM management pack, and some third party solutions like evtools, or you could roll you own using System.Messaging。
希望对您有所帮助。
有商业解决方案 - QueueMonitor。
免责声明:我是该软件的作者。
编辑
针对此场景的一些提示:
- 将消息的
UseDeadLetterQueue
设置为 true - 这样,如果传递消息有任何问题,至少它们不会丢失,但会移至系统的死信队列。 - 将消息的
Recoverable
属性 设置为 true - 它确实会降低性能,但对于这种长时间 运行 的情况,某些重启或失败会丢失消息的风险太大仅存储在内存中。 - 如果消息在一段时间后不再有效,您可以使用
TimeToReachQueue
自动删除它们。