|
復(fù)制代碼 代碼如下:
/**
* 入口函數(shù)
* 將此文件保存為 ProcessOpera.php
* 在terminal中運(yùn)行 /usr/local/php/bin/php ProcessOpera.php &
* 查看進(jìn)程 ps aux|grep php
*/
ProcessOpera("runCode", array(), 8);
/**
* run Code
*/
function runCode($opt = array()) {
//需要在守護(hù)進(jìn)程中運(yùn)行的代碼
}
/**
* $func為子進(jìn)程執(zhí)行具體事物的函數(shù)名稱
* $opt為$func的參數(shù) 數(shù)組形式
* $pNum 為fork的子進(jìn)程數(shù)量
*/
function ProcessOpera($func, $opts = array(), $pNum = 1) {
while(true) {
$pid = pcntl_fork();
if($pid == -1) {
exit("pid fork error");
}
if($pid) {
static $execute = 0;
$execute++;
if($execute >= $pNum) {
pcntl_wait($status);
$execute--;
}
} else {
while(true) {
//somecode
$func($opts);
sleep(1);
}
exit(0);
}
}
}
php技術(shù):PHP實(shí)現(xiàn)多進(jìn)程并行操作的詳解(可做守護(hù)進(jìn)程),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。