macklus / yii2-simple-queue
Yii2 extension to provide SQL based queue worker
Installs: 2 396
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-11-06 23:47:30 UTC
README
Yii2 extension to provide SQL based queue worker
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist macklus/yii2-simple-queue "*"
or add
"macklus/yii2-simple-queue": "*"
to the require section of your composer.json
file.
Configuration
Once the extension is installed, configure it define queue component :
'queue' => [
'class' => 'macklus\SimpleQueue\SimpleQueue',
'connection' => 'db',
'table' => 'simpleQueue',
'persistent' => true,
'duplicate_jobs' => false,
],
Optional vars are:
- connection: Database connection
- table: Name of database table
- persistent: If true, no jobs will be delete from database, marked as ENDED as well
- duplicate_jobs: Search before insert new job to detect similar one exists
Usage
Once the extension is configured, simply use it to put a job on a queue:
Yii::$app->queue->putInTube($queue, [array_of_vars_of_job]);
Controller
You need a controller to get (and process) all jobs. In example:
<?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; } }