如何为最大重试次数配置服务总线函数 2.x?
How to config service bus function 2.x for max retry count?
默认情况下,Azure 服务总线队列绑定函数的重试次数为 10,是否可以在 host.json 或 local.settings.json 文件中自定义此值? 我读过 microsoft document,它引入了四个变量(prefetchCount、autoComplete、maxConcurrentCalls、maxAutoRenewDuration),但其中 none 看起来像什么另外,我需要,这些是我们可以为服务总线绑定功能配置的所有设置吗?我们可以有最大重试、重试间隔、规模计数之类的东西吗?
最大传送计数是队列本身的 属性。
你可以想象如果这可以在软件中被覆盖可能会出现的问题。假设进程 A 正在监视服务总线队列并将其最大传送计数设置为 5,而进程 B 也在监视同一队列,但将其最大传送计数设置为 10。如果是这种情况,进程 A 将强制执行死信尝试 5 次后无法传递消息的概率,但是进程 B 期望得到 10 次尝试。因此,更改最大传送计数的唯一方法是在服务总线队列本身上设置 属性。
您可以通过使消息完全出队,然后在 catch 块中重新入队而不是依赖队列的内部重试逻辑来避免这种情况。然后你可以为所欲为。
默认情况下,Azure 服务总线队列绑定函数的重试次数为 10,是否可以在 host.json 或 local.settings.json 文件中自定义此值? 我读过 microsoft document,它引入了四个变量(prefetchCount、autoComplete、maxConcurrentCalls、maxAutoRenewDuration),但其中 none 看起来像什么另外,我需要,这些是我们可以为服务总线绑定功能配置的所有设置吗?我们可以有最大重试、重试间隔、规模计数之类的东西吗?
最大传送计数是队列本身的 属性。
你可以想象如果这可以在软件中被覆盖可能会出现的问题。假设进程 A 正在监视服务总线队列并将其最大传送计数设置为 5,而进程 B 也在监视同一队列,但将其最大传送计数设置为 10。如果是这种情况,进程 A 将强制执行死信尝试 5 次后无法传递消息的概率,但是进程 B 期望得到 10 次尝试。因此,更改最大传送计数的唯一方法是在服务总线队列本身上设置 属性。
您可以通过使消息完全出队,然后在 catch 块中重新入队而不是依赖队列的内部重试逻辑来避免这种情况。然后你可以为所欲为。