我有一个非常慢的脚本,需要经常执行(每分钟大约 30 次),因此用户无法执行它并且 cron 作业最多每分钟运行一次。
那么,有没有办法(使用 PHP)让服务器而不是用户工作?
这很简单:使用标志文件
无需用户交互即可运行的脚本(可能由 cron 或 shell 启动,包括 PHP shell 执行):
<?php
while (true) {
while (file_exists('/path/to/flagfile')) sleep(1); //Can even use microsleep
include ('/path/to/worker/script');
touch('/path/to/flagfile');
}
?>
触发它的脚本(通过用户交互从网络服务器开始)
<?php
@unlink('/path/to/flagfile');
echo "Processing triggered!";
?>