Yii2 基础版对 queue 队列扩展的安装? [ 2.0 版本 ]
我用高级版安装了queue队列的扩展已经成功,先用了composer 安装后,
再对配置文件添加了
return [
'bootstrap' => [
'queue', // 把这个组件注册到控制台
],
'components' => [
'redis' => [
'class' => \yii\redis\Connection::class,
// ...
],
'queue' => [
'class' => \yii\queue\redis\Queue::class,
'redis' => 'redis', // 连接组件或它的配置
'channel' => 'queue', // Queue channel key
],
],
];
对queue的支持,最后运行init.bat重置后,在cmd 里面运行yii 就可以查看到queue命令
请问一下我目前项目用的是yii2框架的基础版本,虽然也用composer安装了扩展,但是cmd下运行yii始终没有queue的命令,请问以下我这个在基础版本里面该怎么实现对queue的支持呢?
最佳答案
其他 2 个回答
-
在console或者common中config/main.php添加下面配置
return [ 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], 'queue' => [ 'class' => 'yii\queue\redis\Queue', 'redis' => 'redis', // Redis connection component or its config 'channel' => 'queue', // Queue channel key 'as log' => 'yii\queue\LogBehavior', 'ttr' => 10 * 60, // Max time for anything job handling 'attempts' => 3, // Max number of attempts 选项设置了最大的尝试次数 ], ], ];
共 1 条回复 -
上面几层说的都对哦,我也再重复一下。
思路就是哪里需要在哪里配置,比如你在web模式下的某些action内要实现将信息写入队列的操作,因此你需要配置config/web.php,就有了如下代码
// 组件 'queue' => [ 'class' => \yii\queue\file\Queue::class, ],
但是你需要通过yii2的命令行模式去监听或运行队列,让每个worker在流水线上工作,因此需要配置 config/console.php
'bootstrap' => ['log','queue'], // 组件里 'queue' => [ 'class' => \yii\queue\file\Queue::class, ],
共 1 条回复
landong66
注册时间:2015-01-29
最后登录:2020-04-16
在线时长:9小时3分
最后登录:2020-04-16
在线时长:9小时3分
- 粉丝2
- 金钱115
- 威望0
- 积分205