Azure函数应用实例缩容时是否会等待运行进程完成?
Azure函数缩容时的进程处理逻辑
- 针对Service Bus触发的Azure函数,实例因缩容被终止时,不会等待正在运行的函数执行完成,会直接终止进程。
- 这会导致当前正在处理的Service Bus消息被放弃,重新回到队列或订阅里,然后被其他存活实例(比如你提到的实例B)拾取并重新执行,这就是你观察到
deliveryCount变为2的原因。 - 如果想避免这种中断重执的情况,可以尝试两种方式:
- 配置Service Bus触发器的
maxAutoRenewDuration参数,延长消息锁的自动续订时长,给函数足够的执行时间; - 结合函数的优雅停机配置(针对特定运行时),让实例在终止前有短暂缓冲时间处理已启动的任务,但要注意这个缓冲时间是有限的,并非无限等待。
- 配置Service Bus触发器的
内容的提问来源于stack exchange,提问作者Sujay Salins
相关产品推荐
相关产品推荐

