我有一個運行良好的輸入隊列。有時一條消息會進入錯誤隊列。 現在我希望能夠檢查這些消息,並且如果我知道這個特定的消息會通過,可能會再次將它們轉發到輸入隊列。如何從Rebus中檢查錯誤隊列
我該如何開始檢查錯誤隊列?有沒有最佳做法? 我不能只是做一個.CreateBus().Start()
,因爲這會觸發正常處理程序的處理程序。
我有一個運行良好的輸入隊列。有時一條消息會進入錯誤隊列。 現在我希望能夠檢查這些消息,並且如果我知道這個特定的消息會通過,可能會再次將它們轉發到輸入隊列。如何從Rebus中檢查錯誤隊列
我該如何開始檢查錯誤隊列?有沒有最佳做法? 我不能只是做一個.CreateBus().Start()
,因爲這會觸發正常處理程序的處理程序。
您檢查隊列和選項的方式取決於所選的傳輸。
如果你使用的滷麪與MSMQ,最簡單的方法來檢查你的隊列(輸入隊列,隊列錯誤,MSMS死信隊列)和重試失敗的消息的傳送是火起來Rebus Snoop。 Rebus也有ReturnToSourceQueue CLI tool for MSMQ。
如果您使用的是Azure服務總線,我可以推薦Paolo Salvatori's Service Bus Explorer,我已經在一些項目中使用了自己的一點點。
隨着RabbitMQ,我通常使用RabbitMQ的內置web管理插件來檢查隊列,然後Rebus也帶有一個ReturnToSourceQueue CLI tool for RabbitMQ以及。
如果你使用SQL Server,我可以推薦發射了SQL Server Management Studio並讓你的SQL-FU)
如果你想代碼的東西,做某種自動轉發或處理失敗的消息,我可以推薦使用Rebus的傳輸實現(即MsmsMessageQueue
(以及MsmqUtil
),RabbitMqMessageQueue
,AzureServiceBusMessageQueue
等)來處理原始傳輸消息的接收和發送 - 這是我多次使用的方法我自己例如實施粗略的第二級重試機制以及失敗消息的轉發和存檔等。
我應該提到我使用azure服務總線。抱歉!如果沒有線索,這將會導致這種做法太差。 – dampee
我已經擴展了相應的答案:) – mookid8000
謝謝。我試過服務總線瀏覽器。但Rebus不喜歡這一舉措。消息能夠「按原樣」移動到輸入隊列嗎? – dampee