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'; }); ... // 主進程繼續執行...