我使用Azure WebJobs Sdk的EventHub支持來處理事件。由於吞吐量的原因,我決定去批量處理這些事件,例如我的方法是這樣的:使用Azure WebJobs處理一批事件中心事件中的異常Sdk
public static void HandleBatchRaw([EventHubTrigger("std")] EventData[] events) {...}
一個批次內的事件現在一個可能會導致異常 - 有什麼處理的正確方法嗎?當我離開異常未捕獲時,處理停止並且EventData []參數中的其餘事件丟失。
選項:
- 手動捕捉異常,事件轉發到一些地方 否則,繼續
- 讓SDK做的魔力,例如它應該只是 「確認」事件處理,直到那時(我可能會這樣做),將此事件標記爲「中毒」,退出該方法並繼續下一次函數調用。
- 移動到單個事件處理 - 但對於性能 目標,我不覺得這是正確的
- 我忽略了一點,應該考慮另一個策略
我應該如何看待這一點?
據我所知,當事件執行失敗,那麼SDK將重試事件。 –