lisio / yii2-mongodb-q
Yii 框架的 MongoDB 队列服务器扩展
1.0.5
2020-05-27 01:49 UTC
Requires
- php: >=7.1.0
- dmstr/yii2-adminlte-asset: ~2.6.2
- mongodb/mongodb: ^1.4.2
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-mongodb: ~2.1.7
This package is not auto-updated.
Last update: 2024-09-25 22:58:51 UTC
README
此扩展允许在不增加项目堆栈的情况下使用 MongoDB 作为队列服务器,并提供图形用户界面。
安装
此扩展需要 MongoDB 服务器版本 3.6 或更高版本。安装此扩展的最佳方式是通过 composer。运行以下命令之一:
php composer.phar require --prefer-dist lisio/yii2-mongodb-q
或者添加
"lisio/yii2-mongodb-q": "~1.0.0"
到你的 composer.json 的 require 部分中。
配置
要使用此扩展,将以下代码添加到应用程序 web 配置
return [ // ... 'bootstrap' => [ // ..., 'q', ], 'components' => [ // ... 'queue' => [ 'class' => '\yii\q\components\QueueServer', ], ], 'modules' => [ // ... 'q' => [ 'class' => 'yii\q\Module', ], ], ];
以及到应用程序控制台配置
return [ // ... 'controllerMap' => [ // ... 'q' => 'yii\q\commands\QueueController', ], 'components' => [ // ... 'queue' => [ 'class' => '\yii\q\components\QueueServer', ], ], ];
创建索引
./yii q/create-indexes
使用
此扩展为不同情况提供了示例代码(请参阅文件夹 examples/)。
创建队列
Yii::$app->queue->queueCreate('test');
清除队列
Yii::$app->queue->queuePurge('test');
删除队列
Yii::$app->queue->queueRemove('test');
创建工作
$data = [ 'someParam' => 'someValue', ]; $options = [ 'keepResult' => true, 'keepResultDuration' => 86400, ]; $job = Yii::$app->queue->jobCreate('test', SomeWorker::className(), $data, $options);
暂停工作
Yii::$app->queue->jobPause($job->_id);
恢复工作
Yii::$app->queue->jobResume($job->_id);
删除工作
Yii::$app->queue->jobRemove($job->_id);
重试失败的工作
Yii::$app->queue->jobRetry($job->_id);
获取工作数据
Yii::$app->queue->jobStatus($job->_id);
生成工作进程并将其绑定到所有队列
./yii q/spawn
生成 3 个工作进程并将它们绑定到队列 download 和 report
./yii q/spawn 3 download,report
删除在此主机上找不到进程的已死亡工作进程
./yii q/remove-dead-workers
删除过期的作业,其中 keepResultDuration 已经过期
./yii q/remove-stale-jobs
停止绑定到队列 download 和 report 的工作进程
./yii q/stop-workers download,report
停止绑定到所有队列的工作进程(注意它与停止所有工作进程的不同之处)
./yii q/stop-workers
停止所有工作进程
./yii q/stop-all-workers
图形用户界面
图形用户界面可通过 http://your.project.com/q 访问。