Redis MQ队列深度监控

时间:2013-12-19 11:06:55

标签: c# asp.net redis servicestack

在我目前正在参与的项目中,我们正在使用Redis / ServiceStack Message Queue组合。有时这些队列会“拥挤”,因为有些消息需要花费相当长的时间来处理后端。

因此,我想在管理系统中创建一个“概述”/“监控”面板 - 在ASP.net WebForms中编码,以避免人们联系我告诉他们队列是否拥挤。

我如何进入队列并检索待处理/已死信息的数量?

谢谢!

1 个答案:

答案 0 :(得分:3)

MqStats示例项目中的Reusability服务,显示如何内省并提供所有Redis MQ的概述,而MqDump服务显示如何内省单个DTO的消息类型。

Redis MQ只是Redis服务器端列表,每个Request DTO都是唯一的,格式为mq:{DtoName}:{MQType},例如:

mq:RequestDto:inq
mq:RequestDto:priorityq
mq:RequestDto:outq
mq:RequestDto:dlq

你可以简单地对上面的列表使用Redis List操作来计算每个mq(也就是列表)中的消息数量,并通过将它反序列化为Message来对每个消息进行内省,你可以重用{{1}} {{1}} 3}}方法。