我有一個使用Azure Web Jobs SDK構建的Azure WebJob。它消耗隊列中的消息並在另一個隊列上生成消息。它有成千上萬的成功和少數失敗。不幸的是,我可以找到的唯一方法是回顧函數調用,通過分頁瀏覽所有函數。如何通過失敗過濾我的Azure WebJob函數調用歷史記錄?
有一些方法可以讓我得到了失敗的列表,並獲得關於它們的更多詳細信息,如發生了什麼記錄或者被拋出什麼異常?
我有一個使用Azure Web Jobs SDK構建的Azure WebJob。它消耗隊列中的消息並在另一個隊列上生成消息。它有成千上萬的成功和少數失敗。不幸的是,我可以找到的唯一方法是回顧函數調用,通過分頁瀏覽所有函數。如何通過失敗過濾我的Azure WebJob函數調用歷史記錄?
有一些方法可以讓我得到了失敗的列表,並獲得關於它們的更多詳細信息,如發生了什麼記錄或者被拋出什麼異常?
一個選項是記錄/保存失敗的消息,然後使用連接到Webjob的調試器重試它。
另外,無論寫入控制檯輸出和控制檯錯誤,都將轉到特定的觸發webjob運行的日誌文件。所以,在你的try/catch塊中拋出一個異常之前,請確保你記錄了具有細節的異常,以便稍後通過FTP或UI來接受它。
Here是關於在azure網站上如何/在哪裏登錄的詳細信息。您可以通過FTP訪問日誌。
您還可以通過REST API訪問信息。 Details here.
希望這有助於
REST API看起來像我想要的。我今天晚上會玩,看看它是否有助於我找到我的錯誤。重放失敗的問題在於,如果錯誤是暫時的(例如,遠程服務關閉,從遠程服務收到意外的響應,內存不足異常等等),它將不會再次失敗。 – 2014-10-27 22:18:09
如果有幫助,在我的應用程序中,某些消息也會失敗,但是它們會被重新處理而不會出錯。當且僅當通過poision隊列失敗超過5次時,我將該消息存儲爲錯誤。這樣我就知道這封郵件真的有問題了。 – lopezbertoni 2014-10-27 22:35:49
我相信Service Bus會將無法處理10(默認)時間的消息移動到死信隊列中。然而,我相信他們會在緊接着的時候(在peek超時之後)或者在放棄()之後被重試,這意味着如果由於相關服務被關閉而導致錯誤是暫時的,那麼他們很可能會非常快速地衝擊所有10次失敗。 – 2014-10-28 03:13:40
您是否嘗試過的有害隊列和存儲失敗的消息天青表存儲可能? – lopezbertoni 2014-10-27 11:42:22
這將告訴我哪些消息失敗,但它不會給我導致失敗的日誌/異常。 – 2014-10-27 16:10:29