QPMPHP进程管理框架
QPM全名是 Quick Process Management Framework in PHP. PHP 是强大的 web 开发语言,以至于大家常常忘记 PHP 可以用来开发健壮的命令行(CLI)程序以至于 daemon 程序。 而编写 daemon 程序免不了与各种进程管理打交道。QPM 正是为简化进程管理而开发的类库。
以下是用 QPM 编写多进程程序的小例子。
//定义 mission1:每隔3秒打印一次进程信息, 无限循环。 $mission1 = function() { while(true) { echo "---mission 1, pid:".posix_getpid()."\n"; sleep(3); } }; //定义 mission2:打印信息后 3秒后退出。 $mission2 = function() { echo "+++mission 2,pid:".posix_getpid()."\n"; sleep(3); }; //配置: mission 1 和mission 2 同时在子进程中执行。mission 1 只允许在一个子进程中执行,mission 2 则允许2个子进程并行执行。 $config = [ ['worker'=>$mission1], ['worker'=>$mission2, 'quantity'=>2] ]; // 使用multiGroupOneForOne 类型的supervisor 启动任务,意味着同组配置,当一个子进程退出后,会立即重启新的子进程继续执行任务。 Comos\Qpm\supervisor\Supervisor::multiGroupOneForOne($config)->start();
QPM 提供了 fork 的面向对象的封装,极大的简化了 fork 代码的可读性;同时实现了一系列 Supervisor 的用法,可以帮助开发者编写健壮的多进程程序。 在未来的版本里,计划逐步开发出信号处理和跨进程通迅的模块。
参考
评论
Ruby-GodRuby 进程管理框架
God是一个使用Ruby写成的用于监视任务运行状态的可扩展框架,它的配置脚本同样采用Ruby来编写。因此,比起它的前辈Monit,God更为简单,灵活且易于扩展(尤其对于Ruby使用者),你可以很轻易
Ruby-GodRuby 进程管理框架
0
polytope多进程多线程编程框架
polytope(多面体)是一套多进程多线程编程框架,快速构建产品软件。abnormal_exit(异常退出保护):防止多线程程序异常退出时fd未关闭、锁未释放等问题。async_io(异步IO):针
polytope多进程多线程编程框架
0