lisio/yii2-mongodb-q

Yii 框架的 MongoDB 队列服务器扩展

安装: 32

依赖: 0

建议者: 0

安全: 0

星星: 1

关注者: 2

分支: 0

类型:yii2-extension

1.0.5 2020-05-27 01:49 UTC

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 个工作进程并将它们绑定到队列 downloadreport

./yii q/spawn 3 download,report

删除在此主机上找不到进程的已死亡工作进程

./yii q/remove-dead-workers

删除过期的作业,其中 keepResultDuration 已经过期

./yii q/remove-stale-jobs

停止绑定到队列 downloadreport 的工作进程

./yii q/stop-workers download,report

停止绑定到所有队列的工作进程(注意它与停止所有工作进程的不同之处)

./yii q/stop-workers

停止所有工作进程

./yii q/stop-all-workers

图形用户界面

图形用户界面可通过 http://your.project.com/q 访问。