ancoka / yii2-queues
基于 redis 实现的 Yii2 框架队列服务。
1.0.0
2017-02-09 06:36 UTC
Requires
- php: >=5.4
- ext-pcntl: *
- psr/log: 1.0.0
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' => '',
],
],
]
];
用法
扩展安装完成后,您只需在代码中简单地使用它
-
队列作业
作业队列如下
<?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);
-
定义作业
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 } }
-
工作进程
启动工作进程
$ QUEUE=file_serve php bin/resque
-
运行所有队列
所有队列均以相同方式支持并按字母顺序处理
$ QUEUE='*' bin/resque
-
运行多个工作进程
可以通过提供 COUNT 环境变量同时启动多个工作进程
$ COUNT=5 bin/resque
感谢
- Chris Boulton: php-resque