php简单定时执行任务(php实现 master-worker 守护多进程模式的实例代码)
类别:编程学习 浏览量:1259
时间:2022-01-14 02:22:27 php简单定时执行任务
php实现 master-worker 守护多进程模式的实例代码具体代码如下所示:
|
<?php class Worker{ public static $count = 2; public static function runAll(){ static ::runMaster(); static ::moniProcess(); } //开启主进程 public static function runMaster(){ //确保进程有最大操作权限 unmask(0); $pid = pcntl_fork(); if ( $pid > 0){ echo "主进程进程 $pid \n" ; exit ; } else if ( $pid == 0){ if (-1 === posix_setsid()){ throw new Exception( "setsid fail" ); } for ( $i =0; $i < self:: $count ; $i ++) { static ::runWorker(); } @cli_set_process_title( "master_process" ); } else { throw new Exception( "创建主进程失败" ); } } //开启子进程 public static function runWorker(){ unmask(0); $pid = pcntl_fork(); if ( $pid > 0){ // echo "创建子进程 $pid \n"; } else if ( $pid == 0){ if (-1 === posix_setsid()){ throw new Exception( "setsid fail" ); } @cli_set_process_title( "worker_process" ); while (1){ sleep(1); } } else { throw new Exception( "创建子进程失败" ); } } //监控worker进程 public function moniProcess(){ while ( $pid = pcntl_wait( $status )){ if ( $pid == -1){ break ; } else { static ::runWorker(); } } } } Worker::runAll(); |
|
ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 18200 3076 pts/0 Ss+ 14:05 0:00 bash root 6 0.0 0.0 18208 3252 pts/1 Ss 14:06 0:00 bash root 19 0.0 0.0 18204 3248 pts/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 pts/1 R+ 15:32 0:00 ps -aux |
执行命令 kill 65,杀死进程 65 则master_process 进程会再自动开启一个子进程
|
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 18200 3076 pts/0 Ss+ 14:05 0:00 bash root 6 0.0 0.0 18208 3252 pts/1 Ss 14:06 0:00 bash root 19 0.0 0.0 18204 3248 pts/2 Ss+ 14:11 0:00 bash root 64 0.0 0.2 348488 8320 ? Ss 15:32 0:00 master_process root 66 0.0 0.2 348488 8400 ? Ss 15:32 0:00 worker_process root 68 0.0 0.1 348488 5796 ? Ss 15:34 0:00 worker_process root 69 0.0 0.0 36640 2728 pts/1 R+ 15:34 0:00 ps -aux |
总结
以上所述是小编给大家介绍的php实现 master-worker 守护多进程模式的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
原文链接:https://www.cnblogs.com/itsuibi/archive/2019/07/20/11189234.html
您可能感兴趣
- php命名对照表(PHP命名空间用法实例分析)
- php面向对象3大特征(PHP面向对象程序设计重载overloading操作详解)
- thinkphp实战教程之博客技术学习(python3编写ThinkPHP命令执行Getshell的方法)
- nginx和php怎么结合(php和nginx交互实例讲解)
- php开发pdo事务处理(Cpanel下Cron Jobs定时执行PHP的方法)
- phpstudy配置教程(phpStudy2018安装教程及本地服务器的配置方法)
- 常见的php五大运行模式详解(php设计模式之职责链模式定义与用法经典示例)
- php常用加密技术(php用户名的密码加密更安全的方法)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- php实现redis核心代码(PHP结合Redis+MySQL实现冷热数据交换应用案例详解)
- php 实例代码解析(PHP反射学习入门示例)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- phpstudy创建网站教程(使用phpstudy中域名管理菜单创建本地站点图文)
- php怎么判断数据是质数(PHP判断一个变量是否为整数、正整数的方法示例)
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- phpsession方法(PHP SESSION机制的理解与实例)
- 三人行,她们是育人路上的 铁三角 团队(她们是育人路上的)
- 阴阳师 孟婆山兔CP不倒 新皮肤草稿 孟婆兔 让痒痒鼠点赞(阴阳师孟婆山兔CP不倒)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
热门推荐
- nginx安全配置提示(wdcp Linux面板nginx启用gzip后js未压缩解决方案)
- centosftp服务器的配置(CentOS6.9中搭建FTP服务器的方法)
- flex布局小技巧(详解flex实现左右布局中按钮溢出隐藏效果)
- 常用的几种jsp开发环境搭建(怎么一键安装Jsp网站程序?Jsp环境一键配置软件JspStudy推荐)
- python复杂的验证码处理(Python 通过打码平台实现验证码的实现)
- php中钩子的理解与实例教程(php中钩子hook的原理与简单应用demo示例)
- unix进程空间的区段(Unix/Linux fork隐藏的开销)
- oracle中varchar2(byte)、varchar2(char)、nvarchar2()区别
- 腾讯云服务器怎么安装宝塔(腾讯云服务器无法打开宝塔面板的解决方法放行安全组)
- css3如何添加图形(CSS3地图动态实例代码圆圈向外扩散)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9