这个问题与PHP没有直接关系。情况是,我有一个计划的PHP CLI任务,每2分钟后运行一次(报告生成器)。有时,Windows遇到CLI停止工作的错误。当它停止时,在我们按下对话框上的“关闭”按钮之前,它不会执行新任务。
无论如何它可以“关闭”或任务可以自动重启吗? 或者即使它可以触发一些电子邮件警报,也可以通知管理员。
由于
答案 0 :(得分:0)
我在Windows上的cli应用程序遇到了同样的问题。无法找到解决方案以防止崩溃,最终我创建了一个每30分钟运行一次的批处理脚本并杀死所有php进程,这迫使我的循环重新启动。
以下是我的.bat文件的示例
:loop
taskkill /f /im php.exe
taskkill /f /im php.exe
taskkill /f /im php.exe
@ping 127.0.0.1 -n 1800 -w 1000 > nul
goto loop
代码中的ping是我让脚本睡眠的方式。还值得一提的是,调用我的php的脚本也是一个bat文件,因此在上面运行时它没有被杀死。 Hense重新启动循环。
这就是我的意思:
:loop
c:\php\php.exe D:\somedir\somescript.php
goto loop
所以第一个是重启循环,以防应用程序崩溃。第二个是实际使PHP脚本首先运行的原因
希望这有帮助。
答案 1 :(得分:0)
我有解决这个问题的方法。
首先创建一个.bat文件:
php -q -f script.php
另存为batch.bat
然后使用这些设置使用Windows调度程序创建新任务:
常规强> 1.运行用户是否登录 2.以最高权限运行 3.列出项目
<强>触发器强>
操作强>
设置强>
单击“确定”并键入Administrator
的密码