PHP异步执行

本文介绍了一种在PHP中实现异步任务处理的方法,利用popen函数执行Linux命令,在后台运行长时间的任务,确保前端接口快速响应,提升用户体验。

调用接口 接口立马返回数据 后台继续执行
解决方案 写一个php执行的方法 可以看做为脚本
通过php执行linux命令的方式 去执行脚本即可 Linux后台添加一个进程
该方案就是在linux创建了一个进程
该方案适用于 php tinkphp3 tinkphtp5 tinkphtp5也有另外一种方式点击查看

 popen('/www/server/php/74/bin/php index.php api/LklTask/lkl_split_one &','r');

使用 popen函数来执行linux命令
popen函数php可能会禁用 要打开这个函数 具体百度下

/www/server/php/74/bin/php       //php的版本目录
index.php   //tp框架的入口文件
api/LklTask/lkl_split_one ///要执行的方法(模块名/控制器/方法)

如果手动执行该命令一定要在项目的根目录下执行

具体是前端接口请求go_split改方法

 public function go_split()
    {
        $php_configure_path = '/www/server/php/74/bin/php';
        $disabled = explode(',',ini_get('disable_functions'));//获取禁用函数
        if(in_array('popen',$disabled)){
            exit('函数禁用le');
        }
        $output = [];
        popen('/www/server/php/74/bin/php index.php api/LklTask/lkl_split_one &','r');
        $this->ajaxReturn(V(1, '操作成功,请耐心等待'));
    }

注意 popen中 &和r 不能丢掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科小洋Lmy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值