QPM PHP进程管理框架

开源网站开源项目 24-05-09 16:25:21

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

以下是用 QPM 编写多进程程序的小例子。

//定义mission1:每隔3秒打印一次进程信息,无限循环。$mission1=function(){while(true){echo"---mission1,pid:".posix_getpid()."\n";sleep(3);}};//定义mission2:打印信息后3秒后退出。$mission2=function(){echo"+++mission2,pid:".posix_getpid()."\n";sleep(3);};//配置:mission1和mission2同时在子进程中执行。mission1只允许在一个子进程中执行,mission2则允许2个子进程并行执行。$config=[['worker'=>$mission1],['worker'=>$mission2,'quantity'=>2]];//使用multiGroupOneForOne类型的supervisor启动任务,意味着同组配置,当一个子进程退出后,会立即重启新的子进程继续执行任务。Comos\Qpm\supervisor\Supervisor::multiGroupOneForOne($config)->start();

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

教程

安装和使用 QPM

使用 Process 创建 daemon 程序

使用 Supervisor 创建健壮的多进程程序

使用 Supervisor 实现基于队列的并行任务处理程序

使用 Pid防止进程重复启动

使用日志,接入第三方日志

参考

Supervisor 配置参考

[QPM PHP进程管理框架]相关推荐

Kibo 键盘事件处理的JS库

Kibo是一个简单的用于处理键盘事件的Javascript工具库。这个Javascript类库的特点是,它不但能监听普通的……...

iCMS 内容管理系统

iCMS 是一套采用 PHP 和 MySQL 构建的高效简洁的内容管理系统,为您的网站提供一个完美的开源解决方案 面……...

NSD DNS 服务器

NLnet实验室 Name Server Daemon(NSD)是权威的DNS服务器。 它被开发用于在速度,可靠性,稳定性和安全……...

今日开源
  1. VisIt 图形化科学数据分析工具

    VisIt 图形化科学数据分析工具

    VisIt 是一种交互式并行可视化访问和图形的分析工具,用来查看科学数据。用户可以从他们能快速生成可视化数据,随着时间而动态显示,操纵他们,保存用来展现的结果图像。Visit含有丰富套可视化功能,以便你可以各种不同……

    开源软件 2024-05-20

  2. Meta2d.js 可视化在线绘图引擎

    Meta2d.js 可视化在线绘图引擎

    乐吾乐 Le5le Meta2d.js是一个实时数据响应和交互的2d引擎,可用于Web组态,物联网,数字孪生等场景。。 在线使用 在线使用 为什么使用 新引擎 数据+ 算法 + 风格 = 栩栩如生; 数据为核心、数据驱动显示; 多状……

    开源软件 2024-05-20

  3. Pony Actor 模型编程语言

    Pony 是一个面向对象的基于 Actor 模型的安全而且高性能的编程语言。Pony 提供 Sublime 和 Atom 编辑插件,同时很快将提供 vim 和 Visual Studio 支持。可使用 LLDB 和 GDB 进行调试。 Pony 兼容 C 程序,其编译器……

    开源软件 2024-05-20

返回顶部小火箭