国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman中調(diào)用pcntl_fork 實(shí)現(xiàn)多進(jìn)程時(shí),無法回收子進(jìn)程問題

leojen

$pid = pcntl_fork();
//父進(jìn)程和子進(jìn)程都會(huì)執(zhí)行下面代碼
if ($pid == -1) {
//錯(cuò)誤處理:創(chuàng)建子進(jìn)程失敗時(shí)返回-1.
die('could not fork');
} else if ($pid) {
//父進(jìn)程會(huì)得到子進(jìn)程號(hào),所以這里是父進(jìn)程執(zhí)行的邏輯
pcntl_wait($status); //等待子進(jìn)程中斷,防止子進(jìn)程成為僵尸進(jìn)程。
} else {

 //子進(jìn)程邏輯
 exit()

}

如上,正常情況下 子進(jìn)程邏輯結(jié)束之后,需要手動(dòng)調(diào)用exit結(jié)束子進(jìn)程。
但是現(xiàn)在的問題是,在workerman里不能手動(dòng)調(diào)用 exit(),否則會(huì)造成整個(gè)進(jìn)程退出。
但是不調(diào)用的話,沒法手動(dòng)結(jié)束子進(jìn)程,并且會(huì)報(bào)錯(cuò):
process_timeout:

1 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Events/Select.php(261): pcntl_signal_dispatch()

2 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(2430): Workerman\Events\Select->loop()

3 /home/hero/workspace/php/hero_data/vendor/workerman/gateway-worker/src/BusinessWorker.php(197): Workerman\Worker->run()

4 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(1554): GatewayWorker\BusinessWorker->run()

5 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(1384): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))

6 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(1358): Workerman\Worker::forkWorkersForLinux()

7 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(542): Workerman\Worker::forkWorkers()

8 /home/hero/workspace/php/hero_data/application/command/SupportCenter.php(82): Workerman\Worker::runAll()

9 /home/hero/workspace/php/hero_data/thinkphp/library/think/console/Command.php(175): app\command\SupportCenter->execute(Object(think\console\Input), Object(think\console\Output))

10 /home/hero/workspace/php/hero_data/thinkphp/library/think/Console.php(675): think\console\Command->run(Object(think\console\Input), Object(think\console\Output))

11 /home/hero/workspace/php/hero_data/thinkphp/library/think/Console.php(261): think\Console->doRunCommand(Object(app\command\SupportCenter), Object(think\console\Input), Object(think\console\Output))

12 /home/hero/workspace/php/hero_data/thinkphp/library/think/Console.php(198): think\Console->doRun(Object(think\console\Input), Object(think\console\Output))

13 /home/hero/workspace/php/hero_data/thinkphp/library/think/Console.php(115): think\Console->run()

怎么解。。求助。。

3225 1 0
1個(gè)回答

walkor 打賞

workerman不支持業(yè)務(wù)調(diào)用pcntl_fork,尤其是使用了event擴(kuò)展的情況下。

年代過于久遠(yuǎn),無法發(fā)表回答
??