use*_*983 4 php exec delay background-process
我需要在后台运行第二个 php 文件。问题是这个文件只需要在当前文件完成后运行 20 秒。我已经使用 exec("php test_script.php") 来运行该文件,但我无法等待。如果我使用 sleep() 如果停止我当前的脚本。
更具体一点。我正在将文件上传到远程服务器。然后我需要在完成上传后等待大约 20 秒来检查服务器是否有响应。与此同时,我想继续处理当前的文件。第二个文件将在后台执行所需的操作。目前我必须等待然后运行第二个文件。
最简单的解决方案可以在这里找到。基本上,像这样执行你的脚本:
exec('test_script.php >/tmp/output.txt &');
Run Code Online (Sandbox Code Playgroud)
注意末尾的和号 ('&'),这将使命令在后台运行!您可以通过在 test_script.php 中添加 sleep 来将脚本延迟 20 秒。
您的其他选择是通过客户端的 Javascript (AJAX) 触发第二个脚本;或者在后台运行一个进程(或定期通过 cron 作业),它正在检查某种公共数据(例如数据库)的请求,如果需要处理这样的请求,它将被激活。
如果脚本必须运行,JavaScript 不是一个选项,因为用户可能决定离开您的页面,或者不执行 JavaScript,或者恶意并决定不执行特定的 JavaScript。
| 归档时间: |
|
| 查看次数: |
6285 次 |
| 最近记录: |