在我目前从事的一个项目中,我们正在使用 Redis / ServiceStack Message Queue组合。有时这些队列会变得“拥塞”,因为某些消息需要相当长的时间才能由后端处理。
因此,我想在管理系统中创建一个“概述”/“监控”面板 - 它是在 ASP.net WebForms 中编码的,以避免人们联系我告诉他们队列是否拥堵。
我将如何深入队列并检索待处理/死消息的数量?
谢谢!
最佳答案
MqStats服务于Reusability示例项目展示了如何内省(introspection)并提供所有 Redis MQ 的概述,而 MqDump服务展示了如何内省(introspection)单个 DTO 类型的消息。
Redis MQ 只是 Redis 服务器端列表,对于每个请求 DTO 都是唯一的,其格式为 mq:{DtoName}:{MQType}
,例如:
mq:RequestDto:inq
mq:RequestDto:priorityq
mq:RequestDto:outq
mq:RequestDto:dlq
您可以简单地对上述列表使用 Redis 列表操作来计算每个 mq(也称为列表)中的消息数量,并通过将其反序列化为可重复使用的 Message
来内省(introspection)每条消息CreateMessage方法做。
关于c# - Redis MQ队列深度监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680070/