ドストエフスキー-サンクトペテルブルク / yii2-smart-task-processor
ライブまたは遅延処理を行うことができるスマートタスクプロセッサーで、以下のいずれかのトランスポート(nats、rabbitmq、mongo、ネイティブソケット)を使用できます
dev-master
2017-10-02 13:37 UTC
Requires
- gos/react-amqp: ^0.1.2
- workerman/workerman: ^3.4
- wp-cli/php-cli-tools: ^0.11.2
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-23 07:30:34 UTC
README
ライブまたは遅延処理を行うことができるスマートタスクプロセッサーで、以下のいずれかのトランスポート(nats、rabbitmq、mongo、ネイティブソケット)を使用できます
インストール
このエクステンションをインストールする最適な方法は、composerを使用することです。
以下のように実行します
php composer.phar require --prefer-dist dostoevskiy-spb/yii2-smart-task-processor "*"
または
"dostoevskiy-spb/yii2-smart-task-processor": "*"
composer.json
ファイルのrequireセクションに以下を追加します
使用方法
エクステンションがインストールされたら、コントローラーにアクションを追加してコード内で簡単に使用できます
/** Listner action **/ public function actionTaskProcessor() { global $argv; $old = $argv; $argv[0] = $old[1]; $argv[1] = $argv[2]; if (array_key_exists(3, $argv)) { $argv[2] = $argv[3]; } $processor = Yii::$app->processor; $processor->listen(); } /** Runner deffered task processor * * @param string $task task name form config */ public function actionTaskProcessorRun($task) { global $argv; $old = $argv; $argv[0] = $old[1]; if (array_key_exists(3, $argv)) { $argv[1] = $argv[3]; } if (array_key_exists(4, $argv)) { $argv[2] = $argv[4]; } $processor = Yii::$app->processor; $processor->run($task); }
例設定
'processor' => [ 'class' => 'dostoevskiy\processor\SmartTaskProcessor', 'tasksConfig' => [ 'statistics' => [ 'class' => 'console\components\taskProcessor\statistics\StatsProcessor', 'type' => 'deferred', 'threads' => 3, 'storage' => 'rabbit', 'storageOptions' => [ 'durable' => false, 'queue' => 'statistics', 'persistent' => false ], ], 'linkDelivery' => [ 'class' => 'console\components\taskProcessor\links\LinksDelivery', 'type' => 'live', 'threads' => 1, 'transactional' => true, ], ], 'storagesConfig' => [ 'rabbit' => [ 'type' => 'rabbit', 'credentials' => [ 'host' => 'localhost', 'port' => 5672, 'user' => 'guest', 'password' => 'guest', 'vhost' => '/', ], ], ], 'listnerConfig' => [ 'class' => 'dostoevskiy\processor\src\classes\Listner', 'type' => 'tcp', 'host' => '0.0.0.0', 'port' => '8181', 'threads' => 8, 'servicesToReload' => ['db', 'mongo', 'rabbit'], ], ],