gpt4 book ai didi

Azure-Function 部署终止了我正在运行的进程..我可以避免吗?

转载 作者:行者123 更新时间:2023-12-02 23:20:03 26 4
gpt4 key购买 nike

我有几个 Azure 函数共享相同的代码。所以我创建了一个批处理文件来发布我的库。这是一个简单的bat文件。对于我的每个 azure 函数,它连接到主机并使用 robocopy 来同步文件夹。

但是,每次我发布时,当前正在运行的函数都会被删除。我想避免这种情况。有没有办法让正在运行的函数自然终止其工作?

我认为这是可能的,因为当我发布时,我没有重写真正运行的dll,而是将文件复制到<azure-function-url>/site/wwwroot中文件夹。

注意:该函数调用异步方法而不等待。当源更改时,异步方法不会完成工作。 (我不关注这个问题,感谢马特的评论..睁开我的眼睛)

最佳答案

函数运行时旨在允许函数在主机重新启动时正常退出,请参阅 here .

不等待您的异步调用是函数中的反模式,因为我们将无法跟踪您的函数执行。我们使用返回的 Task 来确定您的函数何时完成。如果您不返回 Task,我们会假设您的函数在返回时已完成。

就您而言,这意味着当您的孤立异步调用正在运行时,我们将在重新启动时终止主机。如果您未能等待异步调用,我们也不保证成功:

  • 记录
  • 输出绑定(bind)
  • 异常处理

执行:静态异步任务运行(...){等待asyncMethod(); }

不要:static void Run(...){ asyncMethod(); }

关于Azure-Function 部署终止了我正在运行的进程..我可以避免吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43071193/

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