php 执行 多线程,PHP多线程,无限期执行页面

说到PHP无限执行页面,首先肯定想到set_time_limit(0);,的确,这个可以让页面无限期执行。但是,这个也有不适用的时候。比如,在nginx中限制单个PHP页面执行的时间,或者在做数据统计的时候,你总不至于让页面一直在转吧。下面分享一个我想到的解决方案,当然,不一定是最优的。

首先,将涉及到大量运算的代码单独写到页面中,称之为_exe.php。

然后,写一个中间页面来执行这个页面,称之为_do.php,代码如下:

$name = $_GET['name'];

// 调用cli模式,执行文件

exec("php _do.php $name");

最后,在需要执行_exe.php页面的地方加如下代码:

$opts = array(

'http'=>array(

'method' => "GET",

'timeout' => 2,  //设置请求时间,2秒后放弃请求

'user_agent'=>"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

)

);

$context = stream_context_create($opts);

file_get_contents(’_do.php?name=abc‘, false, $context);

总结,就是使用一个中间页面,调用php的cli模式,进行执行文件。因为php的cli模式,可以无限期执行文件。这也相当于变相实现了多线程!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值