好消息 微信小程序上线啦,看视频更方便。点击查看小程序码

yii2-queue(在yii2中实现队列) / 使用yii2-queue执行多队列方法

阿北哥ya 517次阅读
Yii

这道题是我对segmentfault社群文章的一个回复,也是一个典型问题,相信大家会遇到。

这个问题其实考察的是大家对yii2-queue这个库存在的认知,对,它是一个组件,那也就是说我们可以在yii2中建立一个queue组件,也可以建立N个。

因此当我们想在yii2应用中部署多个yii2-queue队列的时候,就变成了部署多个yii2-queue组件。

官方也是这样提供的,假设我们现在要在自己的yii2应用中使用两个队列,一个是文件类型,一个是redis类型,则配置如下

return [
    'bootstrap' => [
        'queue1',
        'queue2',
    ],
    'components' => [
        'queue1' => [
            'class' => \yii\queue\file\Queue::class
        ],
        'queue2' => [
            'class' => \yii\queue\redis\Queue::class
        ],
    ],
];

这样就可以了,当然对于这两个组件的使用,则要如下形式

Yii::$app->queue1;
Yii::$app->queue2;

就是组件的使用方法。

当我们要调用worker来执行的时候,在命令行也需要两个命令。

php yii queue1/listen;// or queue1/run
php yii queue2/listen;// or queue2/run

就这样就完成了。

此文编号为446 上次更新于2个月前 / Yii 频道
留言
小提醒 欢迎大家留言并且我会拿出时间去看,当然我会删除那些被视为垃圾或广告的留言。
1-1条,共1条数据.
sockball
2个月前
#1137

队列是否也会出现由于mysql长时间没有通讯而主动断开, 发生2006错误mysql server has gone away

为何?mysql链接对象并没有一直存在,你是否遇到过此类错误?

像wokerman、swoole这样常驻内存的不是会出现嘛... 所以想到队列是不是也会有这样的问题...

一般是不会的,你如果不放心可以采用queue/run ,使用计划任务吊起。

不会,变量没有常驻内存。

首页 学员登录 注册