Yii队列Queue的使用

本文详细介绍了如何在Yii2应用中使用yii2-queue插件,包括安装、配置数据库队列、创建任务类、执行任务触发器以及监控队列状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装插件

composer require yiisoft/yii2-queue

2、config里注册queue,

'bootstrap' => ['log','queue'//注册控制台命令],

3、设置

// config/*config.php
return [
    'bootstrap' => [
        'queue',
    ],
    'components' => [
        'queue' => [
            'class' => \yii\queue\db\Queue::class,
            'db' => 'db', // DB 连接组件或它的配置
            'tableName' => '{{%queue}}', // 表名
            'channel' => 'default', // Queue channel key
            'mutex' => \yii\mutex\MysqlMutex::class, // Mutex that used to sync queries
        ],
    ],
];

 4、创建任务

<?php
namespace xxx;
use yiibaseBaseObject;

class Download extends BaseObject implements yiiqueueJobInterface {
    public $url;
    public $file;

    public function execute($queue) {
        file_put_contents($this->file, file_get_contents($this->url));
    }
}

5、找一个执行的触发控制器

class TestController extends Controller{

    public $enableCsrfValidation=false;

    public function actionIndex(){
        Yii::$app->queue->push(new QueueJob([
            'url' => 'xxxxxx',
            'file' => 'D:\xxxx\image_'.rand(0,1000000).'.jpg',
        ]));
    }

}

 6、启用监听

./yii queue/listen //实时监听

7、查看执行状态等

 

yii queue/info 查看队列状态
yii queue/clear 清空队列
yii queue/remove [id] 移除某个id任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值