2012-01-12 65 views
0

我們有一個系統正在生產中,其中一個消息處理服務掛起。NServiceBus消息處理程序無盡循環

症狀:

  • 服務使用100%的CPU
  • 重新啓動服務不能解決
  • 的消息處理函數被調用,但從來沒有完成

我們已經看過了代碼,它似乎是消息處理程序中的無限循環錯誤。如果處理程序沒有在指定的時間內完成,是否有任何方法將NServiceBus配置爲超時處理程序處理並將消息移動到錯誤隊列中?

回答

1

消息是否正在從錯誤隊列中批量複製的無限循環上處理?

我以前見過這種行爲。

當您將錯誤隊列中的消息手動複製回輸入隊列時,它會對消息頭做一些奇怪的處理,從而導致發生這種情況。

+0

我在確認郵件標題的問題,我認爲它已修復,但我們改用了PowerShell來更正ReturnToSourceQueue工具。如果需要,我很樂意分享代碼。 – 2012-01-13 14:09:44

+0

是的,請亞當 – 2012-01-13 14:20:42

+1

這裏是所有PS的東西的鏈接:https://github.com/afyles/Blog/tree/master/PowerShell – 2012-01-13 19:14:30