【发布时间】:2016-02-10 16:09:39
【问题描述】:
我想每 5 分钟运行一次 php 脚本,处理一些简单的 mysql 查询以识别潜在错误,如果错误被记录为数据库条目,则 php 脚本会发送一封电子邮件。
根据我的研究,似乎 cron 作业(或任务调度程序)通常负责在指定时间运行脚本,但是我在我正在使用的托管服务(运行“Parallels Plesk Panel 11.0. 9”作为我可以访问的管理界面)。
因此我尝试了以下“技巧”:
<?php
$active = $_GET["a"];
set_time_limit(0);
while($active == 1){
include 'alert_exe.php';
sleep(300); // execute script every 5 mins
}
?>
要激活脚本,我输入 url (".../alert.php?a=1")。这可以正常运行几分钟,但脚本似乎在 2 或 3 分钟后停止执行。
知道如何防止脚本停止或替代建议如何实现每 5 分钟自动执行一次脚本(无法访问 cron 作业)?
谢谢!
【问题讨论】:
-
您正在运行的主机肯定为长时间运行的脚本配置了超时,以防止其过载。
-
查看您的托管解决方案规范。有些不允许使用 cron,尤其是免费的。然而,有一些允许 crons。您最好的解决方案可能是简单地找到一个支持 crons 的主机,这就是我遇到此问题时所做的。同样,主机可能会阻止您的脚本运行。
-
如果您在共享主机上,则没有办法。从浏览器执行的脚本遵循 php.ini 执行时间限制。