WebJobs SDK 3 功能异常制动

WebJobs SDK 3 Braking on Function Exception

我有一个 Azure WebJob (.NET Core - SDK 3),它在执行队列触发函数失败时停止。我希望此 WebJob 的行为与其他 WebJobs (SDK 2 - .NET Framework) 一样 我在 Windows WebApps 上有 运行。

当在 WebJobs SDK 2 (Windows WebApp) 上执行队列触发函数失败时,消息被发送回队列,DequeueCount 递增,并在 X 次(默认为 5)后消息被发送到 poison 队列。而 WebJob 始终保持 运行.

是否可以使用 WebJobs SDK 3 实现相同的行为?这是所描述行为的示例 (webjobs.ricardogaefke.com)。在这种情况下,我需要使用 try/catch 并手动将消息发送到 poison 队列,这是对 webjobs 功能的浪费(重试会以这种方式丢失)。

非常感谢。

我使用 FunctionExceptionFilterAttribute 找到了解决方案。函数的过滤器类似于 ASP.NET MVC 过滤器,在我的例子中,我可以处理 My WebJob 函数中的错误,并且 return 完成 Task 即使出错,所以消息被发送回队列使用 DequeueCount++(直到出队限制 - 默认为 5)。

最终解决方案可以在 webjobs.ricardogaefke.com 找到,并且有一个 How it works 页面链接到 GitHub 存储库、public Azure Pipelines 和 public Docker 注册表。