jesusch/php-queue

PHP类,用于处理并发运行的作业,以利用多核处理器的性能

dev-master 2015-05-07 09:12 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:07:24 UTC


README

PHP类,用于处理并发运行的作业,以利用多核处理器的性能

背景

经过一番搜索,我未能找到与php-queue类似的类。这段代码受到了php-resque的启发。

要求

  • PHP 5.3+
  • php-pctnl
  • Composer

入门指南

在项目中将php-queue作为Composer包安装是最简单的工作方式。虽然Composer不是必需的,但它会使事情变得容易得多。

如果您不熟悉Composer,请参阅https://getcomposer.org.cn/

  1. 将php-queue添加到您的应用的composer.json中。
{
    // ...
    "require": {
        "jesusch/php-queue": "*"  
    },
    // ...
}
  1. 运行composer install

  2. 如果您尚未添加,请将Composer的自动加载添加到您项目的初始化文件中。(例如)

require 'vendor/autoload.php';

作业

队列作业

作业按照以下方式排队

$queue = new \JobQueue\Queue();
$queue->setMaxProcs(10);

$job = new \JobQueue\Job();

$queue->appendJob($job);

$queue->waitForJobs();

定义作业

每个作业应位于其自己的类中,必须扩展\JobQueue\AbstractJob并包含一个公共的run方法。

class My_Job extends \JobQueue\AbstractJob
{
    public function run()
    {
        
        // Work work work
        echo 'some fancy job';
        $sleep = rand(1,5);
        sleep($sleep);
    }
}