macklus / yii2-simple-queue
提供基于SQL的队列工作者的Yii2扩展
1.0.2
2016-04-14 18:25 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-25 23:19:06 UTC
README
提供基于SQL的队列工作者的Yii2扩展
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一
php composer.phar require --prefer-dist macklus/yii2-simple-queue "*"
或者将以下内容添加到你的composer.json
文件的require部分。
"macklus/yii2-simple-queue": "*"
配置
扩展安装完成后,配置它以定义队列组件
'queue' => [
'class' => 'macklus\SimpleQueue\SimpleQueue',
'connection' => 'db',
'table' => 'simpleQueue',
'persistent' => true,
'duplicate_jobs' => false,
],
可选变量包括
- connection: 数据库连接
- table: 数据库表名
- persistent: 如果为true,则不会从数据库中删除任何工作,也会将它们标记为已结束
- duplicate_jobs: 在插入新工作之前搜索,以检测是否存在相似的工作
用法
配置扩展后,只需使用它将工作放入队列
Yii::$app->queue->putInTube($queue, [array_of_vars_of_job]);
控制器
你需要一个控制器来获取(并处理)所有工作。例如
<?php namespace app\commands; use macklus\SimpleQueue\SimpleQueueController; class SqController extends SimpleQueueController { const DELAY_PRIORITY = 1000; //Default priority const DELAY_TIME = 60; //Default delay time const DELAY_MAX = 3; public function listenTubes() { return ['test']; } public function actionTest($job) { $jobData = $job->getData(); // do some stuff return self::DELETE; } }