wayhood / yii2-queue
yii2 队列组件
dev-master
2016-01-03 15:17 UTC
Requires
This package is auto-updated.
Last update: 2024-09-07 17:02:11 UTC
README
此组件提供简单的队列包装器
我推荐 yii2-asynctask.
要求
安装
安装此扩展的首选方式是通过 composer.
运行以下命令之一
php composer.phar require --prefer-dist wayhood/yii2-queue "*"
或在您的 composer.json
文件的 require 部分添加以下内容
"wayhood/yii2-queue": "*"
使用方法
要使用此扩展,只需在您的应用程序配置中添加以下代码
return [ //.... 'components' => [ 'queue' => [ 'class' => 'wh\queue\RedisQueue', ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => 'localhost', 'port' => 6379, 'database' => 0 ], ], ];
首先创建一个 Job 处理类
namespace console\jobs; class MyJob { public function run($job, $data) { //process $data; var_dump($data); } }
然后将作业推送到队列
// Push job to the default queue and execute "run" method Yii::$app->queue->push('\console\jobs\MyJob', ['a', 'b', 'c']); // or push it and execute any other method Yii::$app->queue->push('\console\jobs\MyJob@myMethod', ['a', 'b', 'c']); // or push it to some specific queue Yii::$app->queue->push('\console\jobs\MyJob', ['a', 'b', 'c'], 'myQueue'); // or both Yii::$app->queue->push('\console\jobs\MyJob@myMethod', ['a', 'b', 'c'], 'myQueue');
在您的应用配置中映射控制台控制器
return [ ... 'controllerMap' => [ 'queue' => 'wh\queue\console\controllers\QueueController' ], ... ];
队列控制器的使用示例
# Process a job from default queue and than exit the process
./yii queue/work
# continuously process jobs from default queue
./yii queue/listen
# process a job from specific queue and than exit the process
./yii queue/work myQueue
# continuously process jobs from specific queue
./yii queue/listen myQueue