侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

QPM-PHP进程管理框架

2022-07-08 星期五 / 0 评论 / 0 点赞 / 44 阅读 / 2433 字

QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以

QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。QPM正是为简化进程管理而开发的类库。

QPM的项目地址是: https://github.com/Comos/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 = [    ['runnableCallback'=>$mission1],    ['runnableCallback'=>$mission2, 'quantity'=>2]];// 使用multiGroupOneForOne 类型的supervisor 启动任务,意味着同组配置,当一个子进程退出后,会立即重启新的子进程继续执行任务。qpm/supervisor/Supervisor::multiGroupOneForOne($config)->start();

到目前为止,QPM实现了fork的面向对象的写法,极大的简化了fork代码的可读性;同时实现了一系列Supervisor的用法,可以帮助开发者编写健壮的多进程程序。 在未来的版本里,计划逐步开发出信号处理和跨进程通迅的模块。

关于 QPM的使用,可以参考:

安装和使用PHP进程管理框架 QPM
使用qpm创建daemon程序
使用QPM编写PHP 多进程程序
 PHP使用QPM实现多进程并行任务处理程序


广告 广告

评论区