我试图找出是否有任何方法可以修改webjobs sdk重试策略。
现在,如果webjob抛出异常,它会立即重新排队。这不是理想的,特别是如果错误是由于数据库超时等原因造成的。
是否有人知道该政策是否可以修改为指数退避?还是其他解决方法?
答案 0 :(得分:2)
据我所知,SDK不支持可配置的重试策略(不要与队列客户端的重试策略混淆)。如果我理解你的意图,你会想要捕获异常,调用DeleteMessage
将其从队列中拉出来,并重新排队具有较长初始可见性延迟的相同消息,然后重新抛出异常。您需要跟踪消息本身中的出列数,因为删除消息将删除DequeueCount。如果要退避并重试导致异常的操作(同时保留队列消息),可以调用UpdateMessage
来扩展可见性超时,然后最终抛出异常。