【问题标题】:Azure Continuous WebJob "Graceful" Shutdown is less than 5 secondsAzure Continuous WebJob“正常”关闭时间少于 5 秒
【发布时间】:2015-02-07 19:09:01
【问题描述】:

我发现了这个关于 WebJobs “优雅”关闭的博客 - http://blog.amitapple.com/post/2014/05/webjobs-graceful-shutdown/#.VNZbLPmsXZ0

它表示连续 WebJobs 的正常关闭默认为 5 秒。

我想在我的 WebJob 关闭时发送一封电子邮件,所以我尝试了博客中详述的方法,但是这封电子邮件没有发送(我有一封电子邮件在 WebJob 启动时发送正常)。

查看 webjob 的日志,我认为这可能是因为关机需要 1 秒而不是 5 秒 - 如果我正确读取日志的话。

在提供的屏幕截图中,似乎在 18:07:58 “WebJob 正在停止”,然后在 18:07:58 “状态更改为已停止”,所以不是 5 秒。

有谁知道如何确保关机时间为 5 秒?

或者即使对于 Continuous WebJobs 可以将此关闭宽限期延长到 5 秒以上?

提前致谢

** 更新 **

我的问题是我忘记了 FileWatcher 事件处理程序位于与主线程不同的线程上。因此,在事件处理程序逻辑完成之前,主线程正在完成,并且作业停止。 已接受 Amit Apple 的评论,因为这为我指明了正确的方向。 感谢你们两位的意见。

【问题讨论】:

    标签: azure azure-webjobs


    【解决方案1】:

    默认情况下,WebJobs 运行时会等待 5 秒,然后才会终止进程。 正如我从日志中看到的那样,该进程实际上是自行退出的(可能是因为您已经实现了关机检测),因此没有理由等待,关机进程继续进行。

    "stopping_wait_time" 是用于延长 5 秒默认设置的正确设置。

    关于开源的好处,我可以给你看一下代码: https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Jobs/ContinuousJobRunner.cs#L156-L190

    【讨论】:

      【解决方案2】:

      发件人:https://github.com/projectkudu/kudu/wiki/Web-jobs#continuous

      您可以通过指定来更改作业的宽限期(以秒为单位) 在 settings.job 文件中(应该与 作业脚本)。

      { "stopping_wait_time": 60 }
      

      这将使作业宽限期为 60 秒,而不是默认值。

      另外,请注意,如果您正在运行网络作业,则应将网站设置为“始终开启”。这可以在管理门户中进行配置。

      【讨论】:

      • 不幸的是,我认为 settings.job 文件仅适用于 Triggered WebJobs 而不是 Continuous WebJobs。无论如何,我确实尝试过,以防万一。我的网络作业是一个控制台应用程序,我将文件添加到根目录,设置为 60 秒,但这没有任何区别。
      • 另外,我认为“始终开启”选项仅适用于标准网站,不适用于免费/共享网站。我正在使用免费网站,因为我真的不会为了拥有一个 WebJob 而为共享网站支付大量费用。理想情况下,我希望将默认的 5 秒应用于我的 Continuous WebJob。 blog.amitapple.com/post/73574681678/git-deploy-console-app/…
      • 你试过在项目的“properties”文件夹中添加文件吗?
      • 我也试过了,把settings.job文件移动到properties文件夹,但是好像不影响关机时间段。查看作业的日志,它仍然显示“SYS INFO] WebJob 由于网站关闭而停止”和“SYS INFO] 状态更改为已停止”之间的时间为 1 秒或更短。不过感谢您的提示。非常感谢。
      • @strangerinthealps 实际上它似乎也适用于我的连续工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多