ancoka/yii2-queues

基于 redis 实现的 Yii2 框架队列服务。

安装: 19

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2017-02-09 06:36 UTC

This package is auto-updated.

Last update: 2024-09-21 05:19:04 UTC


README

Yii2-queues 是一个基于 Yii 框架的 Redis 队列扩展服务。代码在 Chris Boulton 的 php-resque 基础上进行略微修改,使用 PSR4 标准,增加命名空间支持,并继承 Yii2 组件。

需求

  • PHP 5.3+
  • Redis 2.2+
  • Composer

安装

推荐通过 composer 进行。

直接使用 composer 命令进行安装

php composer.phar require --prefer-dist soyaf518/yii2-queues "*"

或者将以下内容添加到项目的 "composer.json" 文件中

"soyaf518/yii2-queues": "*"

然后运行

composer install

配置

要使用此扩展,您需要在应用配置中配置 ResqueComponent 类

return [
	//...
	'components' => [
		'resque' => [
			'class' => 'queues\ResqueComponent',
			'server' => '127.0.0.1',
			'port' => 6379,
			'database' => 0,
			'user' => '',
			'password' => '',
			'options' => [
				'timeout' => '',
				'persistent' => '',
			],
		],
	]
];

用法

扩展安装完成后,您只需在代码中简单地使用它

  1. 队列作业

    作业队列如下

    <?php
    $data = array(
    		'name' => 'yii-queues'
    	);
    
    # Real-time execution
    Yii::$app->resque->put('default', $data);
    
    # Delayed execution
    Yii::$app->resque->putIn('default', $data, 10);
    
    # Timing execution
    Yii::$app->resque->putAt('default', $data, 1486620571);
    
    
  2. 定义作业

    class DefaultWorker
    {
        public function setUp()
        {
    	    // ... Set up environment for this job
        }
    
        public function perform()
        {
            $data = Yii::$app->resque->getArgs($this->args);
    
            // @todo deal with this data
        }
    
        public function tearDown()
        {
        	// ... Remove environment for this job
        }
    }
    
  3. 工作进程

    启动工作进程

    $ QUEUE=file_serve php bin/resque
    
    
  4. 运行所有队列

    所有队列均以相同方式支持并按字母顺序处理

    $ QUEUE='*' bin/resque
    
  5. 运行多个工作进程

    可以通过提供 COUNT 环境变量同时启动多个工作进程

    $ COUNT=5 bin/resque
    

感谢