我在Azure上运行python webjobs。有时候脚本挂起因为我需要强制重启它,所以下一次迭代可以把它拿起来。
如果运行时间超过1小时,如何配置强制停止webjob?基本上我想模仿任务调度程序的行为。
我在webjob上的文件:
run.cmd
D:\ home \ Python35 \ python.exe main.py
main.py
只是另一个python文件
settings.job
{ “is_singleton”:真}
在给定时间,我只想运行一个作业实例。
编辑(答案):作为一种解决方法,我将连续的webjob更改为触发了一个。并在应用设置中添加了这个:
WEBJOBS_IDLE_TIMEOUT = 120
我时不时地在控制台上打印一些东西。如果在2分钟内未检测到CPU活动,则作业将被中止。
答案 0 :(得分:1)
您可能需要第二个webjob,如果它检测到您的进程中没有活动,则可以合并运行状况检查并重新启动主Webjob。
另一个想法可能是使用azure自动化并拥有一个PowerShell脚本,只需每小时重启webjob。
答案 1 :(得分:1)
您可以通过定期执行PowerShell
脚本来实现webjob重启。
请参阅链接:
实际上,执行PowerShell
脚本是调用webjobs API。
你可以找到:
1.开始连续工作
POST /api/continuouswebjobs/{job name}/start
2.停止连续工作
POST /api/continuouswebjobs/{job name}/stop
因此,我的建议是使用上述两种方法创建another webjob
来控制main webjob
重启。
希望它对你有所帮助。