## yiisoft/yii2消息队列

安装扩展包

php composer.phar require --prefer-dist yiisoft/yii2-queue

修改配置文件

console.php、web.php

bootstrap加入queue
components加入

  'queue'=> [
        'class'=> \yii\queue\redis\Queue::class,

        'redis'=>'redis',// Redis connection component or its config

        'channel'=>'queue',// Queue channel key queue在redis中key的前缀

        'as log'=> \yii\queue\LogBehavior::class,-

    ],
    'redis'=>[

        'class'=>'yii\redis\Connection',

        'hostname'=>'127.0.0.1',

        'port'=>6379,

        'database'=>0,

    ],

推送消息

public function actionQueueTest(){
        // 将作业推入队列并获取消息 ID。
        $id = Yii::$app->queue->delay(5)->push(new QueueTestTask());

        // 检查作业是否正在等待执行
        $res = Yii::$app->queue->isWaiting($id);

        // 检查一个worker是否从队列中得到了作业并执行它
        $res = Yii::$app->queue->isReserved($id);

        // 检查是否有worker执行了job。
        $res = Yii::$app->queue->isDone($id);
    }

消费消息,执行业务处理

use yii\base\BaseObject;
use yii\queue\JobInterface;
use yii\queue\Queue;

class QueueTestTask extends BaseObject implements JobInterface
{

    public function execute($queue)
    {
        // 消费消息,执行业务处理

    }
}

运行程序

该命令循环获取并执行任务,直到队列为空:

yii queue/run

此命令启动一个无限查询队列的守护进程:

yii queue/listen

打印列队信息

queue/info

在这里插入图片描述

运行错误

请求超时:

 [Composer\Downloader\TransportException]                                                                                                                                  
  curl error 28 while downloading https://asset-packagist.org/p/provider-latest/40ce441d60eeced1fd0e68db9b7ddd0c2c75fde5d99f83ce098cb01dea9350fd.json: Timeout was reached                    

解决办法修改composer.json文件:

"repositories": [
        {
            "type": "composer",
            "url": "https://mirrors.aliyun.com/composer/"
        }
    ]

文件权限不足,设置config下文件权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值