WebJobs SDK 3对功能异常进行制动

问题描述 投票:0回答:1

我有一个Azure WebJob(.NET Core-SDK 3),当队列触发的函数执行失败时,它会制动。我希望此WebJob像在Windows WebApp上运行的其他WebJob(SDK 2-.NET Framework)一样工作。

当在WebJobs SDK 2(Windows WebApp)上执行队列触发的函数失败时,消息将以DequeueCount递增的方式发送回队列,并且在X次(默认值为5)之后,消息将发送至poison队列。而且WebJob始终保持运行。

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

非常感谢。

azure .net-core azure-webjobs webjob azure-webjobs-continuous
1个回答
0
投票

我使用FunctionExceptionFilterAttribute找到了解决方案。函数的筛选器与ASP.NET MVC筛选器类似,在我的情况下,即使出现错误,我也可以处理WebJob函数中的错误并返回完整的Task,因此消息将使用DequeueCount ++发送到队列(直到出队的限制) -默认值为5)。

最终解决方案可以在webjobs.ricardogaefke.com处找到,并且在How it works页面上具有指向GitHub存储库,公共Azure Pipelines和公共Docker注册表的链接。

© www.soinside.com 2019 - 2024. All rights reserved.