Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 如何配置服务总线函数2.x以获得最大重试次数?_Azure_Azure Functions_Azure Servicebus Queues - Fatal编程技术网

Azure 如何配置服务总线函数2.x以获得最大重试次数?

Azure 如何配置服务总线函数2.x以获得最大重试次数?,azure,azure-functions,azure-servicebus-queues,Azure,Azure Functions,Azure Servicebus Queues,默认情况下,Azure service bus队列绑定函数的重试次数为10,在host.json或local.settings.json文件中是否有自定义此值的方法?我已经了解了,它引入了四个变量(prefetchCount、autoComplete、maxConcurrentCalls、maxAutoRenewDuration)但是没有一个看起来像我需要的,另外,这些都是我们可以为服务总线绑定功能配置的设置吗?我们是否可以使用诸如最大重试次数、重试间隔、缩放计数之类的内容?最大传递计数是队列本

默认情况下,Azure service bus队列绑定函数的重试次数为10,在host.json或local.settings.json文件中是否有自定义此值的方法?我已经了解了,它引入了四个变量(prefetchCount、autoComplete、maxConcurrentCalls、maxAutoRenewDuration)但是没有一个看起来像我需要的,另外,这些都是我们可以为服务总线绑定功能配置的设置吗?我们是否可以使用诸如最大重试次数、重试间隔、缩放计数之类的内容?

最大传递计数是队列本身的属性

您可以想象,如果这可以在软件中被覆盖,可能会出现的问题。假设进程A正在监视服务总线队列并将其最大传递计数设置为5,而进程B也在监视同一队列,但将其最大传递计数设置为10。如果是这种情况,进程A将在5次尝试后强制发送无法传递的消息的死信,但进程B将期望得到10次尝试。因此,更改最大传递计数的唯一方法是设置服务总线队列本身的属性


您可以通过完全退出消息队列,然后在catch块内重新排队,而不是依赖队列的内部重试逻辑来避免这种情况。然后你可以做任何你想做的事

谢谢你的建议!实际上,这就是我现在正在做的,将消息重新排队返回队列,在幕后这将触发一个新的函数实例,而不是当前的函数实例进行重试,这是我们希望通过让现有函数实例在其生命周期内以自定义重试次数重试来解决的问题。当您提到更改最大传递次数的唯一方法是在服务总线队列本身上设置属性时,我们如何通过C#做到这一点?请你详细解释一下,谢谢!这是否意味着服务总线队列绑定函数的最大交付量实际上与该函数无关,而是与服务总线队列有关?这意味着,如果我将服务总线队列的最大传递设置为5,则我有一个azure函数或一个控制台应用程序来处理服务总线队列的订阅,这两个应用程序都将最多有5次重试。@KevDing您是对的。它是服务总线队列本身的属性。如果需要,可以在代码中设置它。有一个关于它的例子,你可以参考这里。