filsh / yii2-gearman
Gearman handler for PHP
Installs: 2 981
Dependents: 0
Suggesters: 0
Security: 0
Stars: 38
Watchers: 8
Forks: 12
Type:yii2-extension
Requires
- sinergi/gearman: dev-master
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-11-29 04:03:37 UTC
README
A wrapper for https://github.com/sinergi/gearman Thanks for Gabriel Bull
Installation
It is recommended that you install the Gearman library through composer. To do so, add the following lines to your composer.json
file.
{ "require": { "filsh/yii2-gearman": "dev-master" } }
Configuration
'components' => [ 'gearman' => [ 'class' => 'filsh\yii2\gearman\GearmanComponent', 'servers' => [ ['host' => '127.0.0.1', 'port' => 4730], ], 'user' => 'www-data', 'jobs' => [ 'syncCalendar' => [ 'class' => 'common\jobs\SyncCalendar' ], ... ] ] ], ... 'controllerMap' => [ 'gearman' => [ 'class' => 'filsh\yii2\gearman\GearmanController', 'gearmanComponent' => 'gearman' ], ... ],
Job example
namespace common\jobs; use filsh\yii2\gearman\JobBase; class SyncCalendar extends JobBase { public function execute(\GearmanJob $job = null) { // Do something } }
Manage workers
yii gearman/start --fork=true // start the workers as a daemon and fork proces
yii gearman/restart --fork=true // restart workers
yii gearman/stop // stop workers
Example using Dispatcher
Yii::$app->gearman->getDispatcher()->background('syncCalendar', new JobWorkload([ 'params' => [ 'data' => 'value' ] ])); // run in background Yii::$app->gearman->getDispatcher()->execute('syncCalendar', ['data' => 'value']); // run synchronize