我正在构建一个蜘蛛,它将遍历各个站点并对它们进行数据挖掘。
由于我需要单独获取每个页面,这可能需要很长时间(可能 100 页)。
我已经将 set_time_limit 设置为每页 2 分钟,但 apache 似乎无论如何都会在 5 分钟后杀死脚本。
这通常不是问题,因为这将从 cron 或类似的没有此时间限制的东西运行。不过,我还希望管理员能够通过 HTTP 接口手动启动获取。
apache 在整个持续时间内保持活动状态并不重要,我将使用 AJAX 来触发获取并偶尔使用 AJAX 进行检查。
我的问题是如何从 PHP 脚本中启动提取,而不会在调用它的脚本终止时终止提取。
也许我可以使用 system('script.php &') 但我不确定它是否能解决问题。
还有其他想法吗?
$cmd = "php myscript.php $params > /dev/null 2>/dev/null &";
# when we call this particular command, the rest of the script
# will keep executing, not waiting for a response
shell_exec($cmd);
其作用是将所有 STDOUT 和 STDERR 发送到 /dev/null,并且您的脚本继续执行。即使“父”脚本在 myscript.php 之前完成,myscript.php 也会完成执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)