Azure Webjobs 失败消息重试策略

Azure Webjobs failed message retry policy

我想知道是否有任何方法可以修改 webjobs sdk 重试策略。

现在,如果网络作业抛出异常,它会立即重新排队。这并不理想,特别是如果错误是由于数据库超时之类的原因造成的。

有谁知道该策略是否可以修改为指数退避之类的东西?或者其他解决方法?

据我所知,SDK 不支持可配置的重试策略(不要与队列客户端的重试策略混淆)。如果我理解你的意图,你会想要捕获异常,调用 DeleteMessage 将其从队列中拉出,并重新排队具有更长初始可见性延迟的相同消息,然后重新抛出异常。您需要跟踪消息本身的出队数量,因为删除消息会删除 DequeueCount。如果您想退避并重试导致异常的操作(同时保持队列消息),您可以调用 UpdateMessage 来延长可见性超时,然后最终抛出异常。