我有一个Azure WebJob (.NET CoreSDK3),当队列触发函数的执行失败时,它会刹车。我希望这个WebJob像其他WebJobs (SDK2-.NET框架)一样运行在WebApps上。
当队列触发函数在Windows 2( WebJobs WebApp)上执行失败时,消息将以DequeueCount递增的方式发送回队列,在X次(默认为5)消息发送到poison
队列之后。WebJob总是在不停地运行。
WebJobs SDK 3有可能有相同的行为吗?这是所描述的bahavior (webjobs.ricardogaefke.com)的一个例子。在这种情况下,我需要使用try/catch并手动地将消息发送到poison
队列,这是对webjobs功能的浪费(重试就是这样丢失的)。
非常感谢。
发布于 2020-05-31 08:24:58
我使用FunctionExceptionFilterAttribute
找到了解决方案。函数的过滤器类似于ASP.NET MVC过滤器,在我的例子中,我可以处理WebJob函数中的错误并在出错时返回一个完整的Task
,因此消息被发送回DequeueCount++队列(直到去队列的限制-默认值为5)。
最后的解决方案可以在webjobs.ricardogaefke.com上找到,并且有一个How it works
页面,其中包含指向GitHub回购、公共Azure管道和公共码头注册中心的链接。
https://stackoverflow.com/questions/62117963
复制相似问题