当前位置:网站首页>PHP实现异步执行程序
PHP实现异步执行程序
2022-08-04 05:25:00 【eleven_-11】
PHP实现异步执行程序
需要异步执行的原因
在进程执行一个脚本程序的时候,往往需要等待脚本程序执行结束后返回结果,才能往下执行,如果是耗时操作可能导致超时的情况
方法
popen函数
使用
popen.php
$sCmd = "php sleep.php";
file_put_contents("echo", "开启popen时间:".date("Y-m-d H:i:s", time()) . "\n", FILE_APPEND);
$hResource = popen("$sCmd &", "r");
pclose($hResource);
file_put_contents("echo", "执行popen时间:".date("Y-m-d H:i:s", time()) . "\n", FILE_APPEND);
sleep.php
sleep(60);
file_put_contents("echo", "sleep进程结束时间:".date("Y-m-d H:i:s", time()) . "\n", FILE_APPEND);
echo文件
由此可以看出,popen是异步执行的函数
注意
若需要执行的异步程序有输出,则不能这么写
比如sleep.php
<?php
for($i = 0;$i<5;$i++){
echo "$i\n";//输出
file_put_contents("/root/a.txt", "$i\n", 8);
sleep(1);
}
若popen.php
内容如下
<?php
pclose(popen("php sleep.php", "r"));
}
则没有a.txt,因为popen打开了一个通道,如果有内容输出时,而pclose又关闭了通道,因此异步脚本未能完全执行,以上写法只有当异步执行的脚本没有输出才可以使用。
所有popen.php
内容需要修改为如下
<?php
$handle = popen("php sleep.php", "r");
sleep(10);//或者其他检测sleep.php是否执行完毕的流程
pclose($handle);
}
边栏推荐
猜你喜欢
EntityComponentSystemSamples学习笔记
Deploy LVS-DR cluster [experimental]
Do you think border-radius is just rounded corners?【Various angles】
MySQL数据库面试题总结(2022最新版)
MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
npm安装依赖报错npm ERR! code ENOTFOUNDnpm ERR! syscall getaddrinfonpm ERR! errno ENOTFOUND
Resolved error: npm WARN config global `--global`, `--local` are deprecated
[Evaluation model] Topsis method (pros and cons distance method)
7.13 Day20----MYSQL
MySQL database (basic)
随机推荐
[One step in place] Jenkins installation, deployment, startup (complete tutorial)
Resolved error: npm WARN config global `--global`, `--local` are deprecated
梳理CamStyle、PTGAN、SPGAN、StarGAN
代码重构:面向单元测试
SLSA 框架与软件供应链安全防护
The Road to Ad Monetization for Uni-app Mini Program Apps: Full Screen Video Ads
关于C#的反射,你真的运用自如嘛?
7.13 Day20----MYSQL
Redis common interview questions
想低成本保障软件安全?5大安全任务值得考虑
EntityComponentSystemSamples学习笔记
Typora 使用保姆级教程 | 看这一篇就够了 | 历史版本已被禁用
Get the selected content of the radio box
力扣题解8/3
[Cocos] cc.sys.browserType可能的属性
[Evaluation model] Topsis method (pros and cons distance method)
即时通讯网 即时通讯音视频开发
9. Dynamic SQL
少年成就黑客,需要这些技能
day13--postman interface test