我有一个PHP脚本,可以在不到10分钟内执行某些操作(当它没有冻结时)。
问题在于,有时候,由于我不知道的原因(可能是连接到远程服务器的问题),它会冻结而没有任何错误(光标闪烁就像它仍然在执行)并且它需要是手动的关闭并重新启动再次工作。很多时候我只发现它被延迟了几个小时而且不好。
我已经尝试了max_execution_time,但是它返回了致命错误,它不允许我重新启动它,这不是主意。
以下是示例代码:
<?php
ini_set('max_execution_time', 1200);
while (1) {
include_once 'once.php';
sleep(5);
include 'a.php';
sleep(5);
include 'b.php';
sleep(600);
}
答案 0 :(得分:0)
我在我们的服务器上运行了一个PHP脚本,它可以作为几个关键任务的工作者。我有另一个脚本被安排作为一个cron工作,“留意”这个。以下是整个事情的样子:
ps
或file_exists('/ proc /'.$ pid)检查进程是否正在运行
3.1。如果pid有效(进程正在运行),那么它只会退出。
3.2。如果pid无效,则执行worker.php。我还在这里添加了邮件通知。到目前为止,我发现cron作业最可靠,所以我选择了这个解决方案。