解析PHP实现多进程并行执行脚本

yipeiwu_com5年前PHP代码库

由于php的进程是不支持多线程的,有些场景为了方便以及提高性能,可以用php实现多进程以弥补这个不足:

复制代码 代码如下:

#!/usr/bin/env php
<?php
$cmds=array(
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','mobile',2),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php','click',2),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php',1),
        array('/apps/bin/launcher.php','charge/promotion_props_stat.php',2)
);

foreach($cmds as $cmd){
        $pid=pcntl_fork();
        if($pid==-1){ //进程创建失败
                die('fork child process failure!');
        }
        else if($pid){ //父进程处理逻辑
                pcntl_wait($status,WNOHANG);
        }
        else{ //子进程处理逻辑
                pcntl_exec('/usr/local/bin/php',$cmd);
        }
}


相关文章

php定义参数数量可变的函数用法实例

本文实例讲述了php定义参数数量可变的函数用法。分享给大家供大家参考。具体分析如下: php中的的函数参数可以不固定,甚至不用定义参数,在函数内部使用func_get_args()函数获...

分析php://output和php://stdout的区别

PHP包含了以php://开头的一系列输出输出流,如php://stdin, php://stdout等。今天查看代码时,忽然想到一个问题:php://output和php://stdo...

解决laravel 出现ajax请求419(unknown status)的问题

解决laravel 出现ajax请求419(unknown status)的问题

如下所示: 这个是因为laravel自带CSRF验证的问题 解决方法 方法一:去关掉laravel的csrf验证,但这个人不建议,方法也不写出来了。 方法二:把该接口写到api.php...

浅析PHP递归函数返回值使用方法

PHP经过长时间的发展,很多用户都很了解PHP了,PHP最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后...

WordPress中用于获取搜索表单的PHP函数使用解析

get_search_form 函数在 WordPress 中是用来提取预设的搜索表单或者默认的搜索表单的。因为官方这个函数没有中文的,所以我就简单写了一下。 描述 get_search...