2013-12-19 50 views
2

在我目前正在從事的一個項目中,我們正在使用Redis/ServiceStack Message Queue組合。有時這些隊列會「擁塞」,因爲某些消息在後端處理需要一段時間。Redis MQ隊列深度監測

因此,我想在管理系統中創建一個「概覽」/「監視」面板,該面板由ASP.net WebForms編碼,以避免與我聯繫的人告訴他們隊列是否擁塞。

我將如何去潛入隊列並檢索未決/死亡消息的數量?

謝謝!

回答

3

示例項目中的MqStats服務顯示如何反思並提供所有Redis MQ的概述,而MqDump服務顯示如何反思單個DTO類型的消息。

Redis的MQ的是特有的每一個請求DTO其採取mq:{DtoName}:{MQType}格式,如只是Redis的服務器端列表:

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

您可以簡單地使用Redis的列表操作對上述名單計數每個mq(又名列表)中的消息數量,並通過將其反序列化爲Message來反省每個消息,您可以重新使用CreateMessage方法執行此操作。