gpt4 book ai didi

azure-functions - 如何让正在执行的 azure 函数在关机期间完成?

转载 作者:行者123 更新时间:2023-12-04 07:14:24 24 4
gpt4 key购买 nike

重新启动函数应用程序时,事件函数将被终止,包括重新启动、停止/启动、在顶部发布和交换部署槽。对于频繁运行的函数,这是一个问题。
我们坚持我们的功能的目标是非常快速地运行。也许最多几秒钟。
但是,当功能应用程序停止或重新启动时,主机不会为“主动运行”功能提供在停止之前完成的机会。这意味着我们将不得不管理每个函数执行的状态,这违背了无状态、快速运行函数的目的。更糟糕的是,管理该状态(例如将其写入某种类型的存储)也不能保证完成。
有什么方法可以将函数应用程序配置为不执行此操作(并在强制取消函数执行之前等待 X 秒)?如果没有,有没有办法 Hook 关闭过程并使其在事件功能完成时“等待”?CancellationToken非常适合触发一些东西来运行静态清理(如刷新日志),但是当它运行时,事件功能已经被取消。
我创建了一个带有设置说明的简单 repro,并将其发布到 GitHub:
https://github.com/retsvek/UngracefulUnloadOfFunctions

最佳答案

Functions 运行时是为在 Function Host 重新启动时正常关闭而构建的。见 here .另外,updating the function code does not restart the host .请注意,当 w3wp 进程重新启动时 - 当 FunctionApp 重新启动时发生 kill running instances .另外,当使用 deployment slots 时, 重新启动工作进程。部署槽不用于维护正在运行的函数实例。

在消费计划上运行的函数的默认超时设置为 5 分钟。如果函数运行超过默认超时,则无法保证完成函数执行。 Here是一种将默认超时延长至 10 分钟的方法。

请查看 Functions Best Practices为实现功能提供指导。

我们现在有一个预览功能 Durable Functions这是用于有状态的协调问题 - 希望这对您的场景有所帮助。

关于azure-functions - 如何让正在执行的 azure 函数在关机期间完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48118401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com