【发布时间】:2019-01-28 10:15:31
【问题描述】:
我有一个位于/var/www/site/update.php full 的PHP 脚本。脚本从 cron 自动启动:
/usr/bin/php /var/www/site/update.php full
但是当我从我的网站启动相同的脚本时:
<?php exec("/usr/bin/php /var/www/site/update.php full") ?>
它运行了大约 20 分钟,然后开始显示大量错误消息。同时页面停止加载并在屏幕上写入error 504 Gateway Time-out。
我猜 curl 也无济于事。还有其他选择吗? 问题是如何运行,以便它可以独立于浏览器工作。该代码已经存在并已解决。现在它每小时运行一次。但是需要通过按网站上的按钮或链接来计划外运行它。
【问题讨论】:
-
您需要刷新缓冲区以立即获得输出,在这种情况下您将避免网关超时
-
你在使用 PHP-FPM 吗?
-
你有调用 save_handler 吗?
-
你必须在网络服务器上运行这个脚本吗?另一种方法是设置每分钟运行一些 CRON 任务并检查是否有一些工作要做。然后在网页中按下按钮 - 只需为该 cron 任务设置一些标志,如果可以启动所需的工作。此操作将很快不会阻塞页面加载。繁重的任务不应该直接在 Web 服务器中执行
-
谢谢。但我忘记了我有参数。我更新了我的问题。