免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3475 | 回复: 5
打印 上一主题 下一主题

求一个PHP编写的多守护进程框架类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-14 11:08 |只看该作者 |倒序浏览
本帖最后由 pwtitle 于 2010-09-14 11:09 编辑

需求如下:
1、脚本运行Daemon到后台(起一个主进程)
2、主进程运行一个脚本不断检查任务(比如每1秒从队列中取任务)
3、当主进程检查到一个任务时,起一个子进程(几个任务起就起几个子进程),同时主进程继续检查任务,子进程完成计算后,exit自己,并且通知主进程(主进程需要后续处理,比如所有任务的数据合并等)。
  1. <?php
  2. class Process{
  3.         public function fork($obj,$argv){
  4.                 $pk = pcntl_fork();
  5.                 if($pk===0){
  6.                         $cid=getmypid();
  7.                         $obj->__fork($argv);
  8.                         posix_kill($cid, SIGTERM);
  9.                         exit;
  10.                 }                
  11.         }

  12.         public function daemon(){
  13.                 $pid = pcntl_fork();
  14.                 if($pid===0){
  15.                         umask(0);
  16.                         posix_setsid();
  17.                         chdir("/");               
  18.                 }
  19.         }

  20.         public function checker(){
  21.                 return array('t1','t2','t3');
  22.         }

  23. }

  24. class Test{
  25.         public function __fork($argv){
  26.                 while(1){
  27.                         echo "[".posix_getppid()."][".date("H:i:s")."]".$argv."\n";
  28.                         sleep(1);
  29.                 }
  30.         }
  31. }
  32. $test = new Test();

  33. $p = new Process();
  34. $p->daemon();
  35. //while(1){
  36.         $tasks = $p->checker();
  37.         foreach($tasks as $task){
  38.                 $p->fork($test,$task);
  39.         }
  40. //        sleep(1);
  41. //}
  42. ?>
复制代码
跪求各位大爷指点江山,不胜感激。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
2 [报告]
发表于 2010-09-14 13:49 |只看该作者
感觉用C做比较合适,

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
3 [报告]
发表于 2010-09-14 13:51 |只看该作者
参考c socket的几个模型架构会好点

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2010-09-14 20:03 |只看该作者
用c语言是比较适合的啊。

论坛徽章:
0
5 [报告]
发表于 2010-09-14 21:57 |只看该作者
你这个php也没有实现守护进程啊。。。。
这个还是C或者Perl Python合适。

论坛徽章:
0
6 [报告]
发表于 2010-09-26 13:39 |只看该作者
大哥,你这个是守护进程吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP