Azure WebJob:如果运行时间超过X分钟,则强制停止

时间:2017-10-10 00:51:04

标签: python azure azure-webjobs

我在Azure上运行python webjobs。有时候脚本挂起因为我需要强制重启它,所以下一次迭代可以把它拿起来。

如果运行时间超过1小时,如何配置强制停止webjob?基本上我想模仿任务调度程序的行为。

我在webjob上的文件:

  1. run.cmd

    D:\ home \ Python35 \ python.exe main.py

  2. main.py

    只是另一个python文件

  3. settings.job

    { “is_singleton”:真}

  4. 在给定时间,我只想运行一个作业实例。

    编辑(答案):作为一种解决方法,我将连续的webjob更改为触发了一个。并在应用设置中添加了这个:

      

    WEBJOBS_IDLE_TIMEOUT = 120

    我时不时地在控制台上打印一些东西。如果在2分钟内未检测到CPU活动,则作业将被中止。

2 个答案:

答案 0 :(得分:1)

您可能需要第二个webjob,如果它检测到您的进程中没有活动,则可以合并运行状况检查并重新启动主Webjob。

另一个想法可能是使用azure自动化并拥有一个PowerShell脚本,只需每小时重启webjob。

答案 1 :(得分:1)

您可以通过定期执行PowerShell脚本来实现webjob重启。

请参阅链接:

1。start webjob

2。stop webjob

实际上,执行PowerShell脚本是调用webjobs API

你可以找到:

1.开始连续工作

POST /api/continuouswebjobs/{job name}/start

2.停止连续工作

POST /api/continuouswebjobs/{job name}/stop

因此,我的建议是使用上述两种方法创建another webjob来控制main webjob重启。

希望它对你有所帮助。