https://github.com/xieyonn/MultiProcessphp
使用composergit
composer.json
的repositories
下{ "repositories": [ { "type": "git", "url": "https://github.com/xieyonn/MultiProcess.git" } ] }
composer require "xieyonn/MultiProcess"
能够传入回调函数,所有任务执行完后执行github
use MultiProcess\ProcessClone; $mum = 2; // 子进程数量 $call = function () { // 任务以闭包的形式传入 sleep(5); echo "hello"; }; $p = new ProcessClone($num, $call); $callback = function() { echo 'done'; }; // 指定callback,任务执行完后执行 $p->run($callback); ... // 主进程继续执行...
上限
,接受数组
形式的任务参数,每一个参数会传入给任务。任务执行次数取决于参数数组大小。能够传入回调函数,所有任务执行完后执行json
use MultiProcess\ProcessClone; $num = 3; $call = function ($begin, $end) { sleep(5); echo "{$begin} ~ {$end}\n"; }; // 任务参数(索引数组) key => name 分别代码传给任务闭包的参数名、参数值 $params = [ [ 'begin' => '2018-01-01', 'end' => '2018-01-02', ], [ 'begin' => '2018-01-02', 'end' => '2018-01-03', ], [ 'begin' => '2018-01-03', 'end' => '2018-01-04', ], [ 'begin' => '2018-01-04', 'end' => '2018-01-05', ], [ 'begin' => '2018-01-05', 'end' => '2018-01-06', ], ]; $p = new ProcessCloneParams($num, $call, $params); $p->run(function() { echo 'done'; }); ... // 主进程继续执行...