文档章节

安装和使用PHP进程管理框架 QPM

AlexQ
 AlexQ
发布于 2015/03/10 21:34
字数 612
阅读 152
收藏 6

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

环境要求

  1. *nix系统。由于QPM的核心功能是基于pcntl扩展的,无法用于windows系统。

  2. PHP 5.4.x及以上版本,并且开启pcntl, posix。

安装并使用QPM

使用 Composer 安装QPM(推荐)

1) 安装Composer

Composer 是PHP用来管理软件包依赖关系的工具。使用Composer可以非常便利的实现依赖包的快速下载和安装。 
使用以下命令,可以快速安装Composer:

curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer

也可参考:Composer安装指南

2) 在Composer配置文件中配置QPM

使用Composer的项目,在项目目录下通常有composer.json文件。 
可参考如下配置。

    { 
      "require": {
        "monolog/monolog": "1.0.*",
        "comos/qpm":"0.3.*"
      }    }

其中

"comos/qpm":"0.3.*"

表示依赖 comos/qpm 0.3.x版本。

3) 安装QPM

准备好composer.json, 执行 composer install 后,即可在 vendor/comos 找到qpm

4) 运行

运行前,脚本须先加载compser autoload.php文件。 
例 test.php:

<?phprequire __DIR__.'/vendor/autoload.php';$pid = qpm\process\Process::current()->getPid();echo "PID: $pid\n";

执行 php test.php,终端输出 PID: 11210 (进程号)。

直接下载QPM

1) 从github releases 下载最新稳定版本。

例如 0.3.0版本

2) 解压到项目目录。

tar zxvf 0.3.0.tar.gz

3) 注册自己编写的autoloader并运行。

由于qpm遵循psr-4,需要依赖autoloading机制加载类,如果项目没有注册适合的autoloader,用户需要自行实现autoloader。 
例如 test1.php:

    <?php
    spl_autoload_register(function ($class) {
        $prefix = 'qpm\\';        $baseDir = __DIR__ . '/qpm-0.3.0/library';        $len = strlen($prefix);        if (strncmp($prefix, $class, $len) !== 0) {            return;
        }        $relativeClass = substr($class, $len);        $file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';        if (file_exists($file)) {            require $file;
        }
    });    $pid = qpm\process\Process::current()->getPid();    echo "PID: $pid\n";

执行 php test1.php,终端输出 PID: 11210 (进程号)。


© 著作权归作者所有

AlexQ
粉丝 5
博文 10
码字总数 3706
作品 0
海淀
私信 提问
QPM-PHP进程管理框架

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

AlexQ
2015/03/10
397
0
PHP使用QPM实现多进程并行任务处理程序

考虑用PHP实现以下场景: 有一个抓站的URL列表保存在队列里,后台程序读取这个队列,然后转交给子进程去抓取HTML存放到文件里。 为了提高效率,允许多任务并行执行,但为了避免机器负载过高,...

AlexQ
2015/03/10
2.9K
13
PHP进程管理框架--QPM

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

赵青
2015/02/27
1K
0
韩旭/tpr-composer

TPR---基于thinkphp5的restful接口composer组件 专为接口开发而设计 做高并发、高可用、易扩展的php接口开发的必备首选 交流QQ群:521797692 tpr核心代码所需环境 php7.0+ php-fpm pcntl po...

韩旭
2017/06/22
0
0
(新)NODEJS 定时任务管理系统

此项目地址: https://github.com/robanlee123/RobCron - 题外话 我曾几个月前写过另外一个版本的任务管理系统,链接:http://my.oschina.net/u/568264/blog/120854 至于为什么重写这套系统,原因...

_dedecms
2014/01/17
2K
12

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
28分钟前
4
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
4
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
13
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部