怎么在php中利用成为集大成实现守护多进程模式

  介绍

本篇文章给大家分享的是有关怎么在php中利用成为集大成实现守护多进程模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

具体代码如下所示:

& lt; php ?   class 工人{   public 才能;static  count 美元;=,2;   public 才能static  function  runAll () {   ,,,静态:runMaster ();   ,,,静态:moniProcess ();   ,,}//开才能启主进程   public 才能static  function  runMaster () {   ,,,//确保进程有最大操作权限   ,,,揭露(0);   ,,,pid 美元;=,pcntl_fork ();   ,,,如果(pid 美元;祝辞,0){   ,,,,,echo “主进程进程,pid 美元;\ n";   ,,,,,退出,,,   ,,,}else 如果(pid 美元;==,0){   ,,,,,如果(1,===,posix_setsid ()) {   ,,,,,,,,,throw  new 例外(“setsid  fail");   ,,,,,}   ,,,,,for  (i=0;美元,美元小姐:& lt;, self::计数;美元,美元我+ +),{   ,,,,,,,静态:runWorker ();   ,,,,,}   ,,,,,@cli_set_process_title (“master_process");   还有,,,}{   ,,,,,throw  new 例外(“创建主进程失败“);   ,,,}   ,,},//开才能启子进程   public 才能static  function  runWorker () {   ,,,揭露(0);   ,,,pid 美元;=,pcntl_fork ();   ,,,如果(pid 美元;祝辞,0){   ,,,,,//,echo “创建子进程,pid 美元;\ n";   ,,,}else 如果(pid 美元;==,0){   ,,,,,如果(1,===,posix_setsid ()) {   ,,,,,,,throw  new 例外(“setsid  fail");   ,,,,,}   ,,,,,@cli_set_process_title (“worker_process");   ,,,,,,(1){   ,,,,,,,睡眠(1);   ,,,,,}   还有,,,}{   ,,,,,throw  new 例外(“创建子进程失败“);   ,,,}   ,,}//才能监控工人进程   public 才能;function  moniProcess () {   ,,,,(,pid 美元;=,pcntl_wait(状态)美元){   ,,,,,如果(pid 美元;==,1){   ,,,,,,,休息;   ,,,,,其他}{   ,,,,,,,静态:runWorker ();   ,,,,,}   ,,,}   ,,}   }   工人:runAll (); ps 辅助   USER ,,, PID  % CPU  % MEM , VSZ , RSS  TTY ,, STAT  START  TIME 命令   root ,,,, 1, 0.0, 0.0, 18200, 3076,分/0,,Ss +, 14:05  0:00  bash   root ,,,, 6, 0.0, 0.0, 18208, 3252,分/1,,Ss , 14:06  0:00  bash   root ,,, 19日,0.0,0.0,18204,3248,分/2,,Ss +, 14:11  0:00  bash   root ,,, 64, 0.0, 0.2, 348488, 8320,,,,, Ss , 15:32  0:00  master_process   root ,,, 65, 0.0, 0.2, 348488, 8400,,,,, Ss , 15:32  0:00  worker_process   root ,,, 66, 0.0, 0.2, 348488, 8400,,,,, Ss , 15:32  0:00  worker_process   root ,,, 67, 0.0, 0.0, 36640, 2804,分/1,,R +,, 15:32 , 0:00  ps 辅助

执行命令杀65人,杀死进程65则master_process进程会再自动开启一个子进程

USER ,,, PID  % CPU  % MEM , VSZ , RSS  TTY ,, STAT  START  TIME 命令   root ,,,, 1, 0.0, 0.0, 18200, 3076,分/0,,Ss +, 14:05  0:00  bash   root ,,,, 6, 0.0, 0.0, 18208, 3252,分/1,,Ss , 14:06  0:00  bash   root ,,, 19日,0.0,0.0,18204,3248,分/2,,Ss +, 14:11  0:00  bash   null   null   null   null

怎么在php中利用成为集大成实现守护多进程模式