首页 > 其他分享 >yii2-队列使用

yii2-队列使用

时间:2024-03-30 14:44:58浏览次数:18  
标签:php 队列 yii redis queue 使用 yii2

yii2-队列使用

安装yii2-queue

composer require yiisoft/yii2-queue

安装yii2-redis

composer require yiisoft/yii2-redis

控制台配置文件 console.php 和 web.php

 'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => '127.0.0.1',
            'port' => 6379,
            'database' => 0,
        ],
        'queue' => [
            'class' => 'yii\queue\redis\Queue',
            'redis' => 'redis', // 连接组件或它的配置
            'channel' => 'queue',
        ],

队列文件 common\queues\TestJob.php

<?php
namespace app\common\queues;

use app\modules\admin\models\Admin;
use yii\base\BaseObject;

class TestJob extends BaseObject implements \yii\queue\JobInterface
{
    
    public $username;

    public function execute($queue)
    {
        $this->addAdmin();
    }

    public function addAdmin(){
        $admin = new Admin();
        $admin->username = $this->username;
        $admin->password = '123456';
        $admin->save();
    }
}

控制器 TestController.php

public function actionIndex()
{
    $id = Yii::$app->queue->push(new TestJob(['username'=>'useranme']));
}

开启控制台队列监听

php yii queue/listen

访问测试

http://www.yii2.com/test/index

yii2操作queue方法

$id = Yii::$app->queue->push(new Job()); //推送作业到队列
Yii::$app->queue->isWaiting($id); //判断作业是否等待中
Yii::$app->queue->isReserved($id); //判断作用是否执行中
Yii::$app->queue->isDone($id);//作业是否执行完

控制台queue命令

php yii queue/info  //查看队列信息
php yii queue/run   //运行队列
php yii queue/listen  //监听队列
php yii queue/clear  //清空队列

标签:php,队列,yii,redis,queue,使用,yii2
From: https://www.cnblogs.com/hu308830232/p/18105469

相关文章

  • Yii2 过滤器
    Yii2过滤器过滤器AccessControllerAccessControl基于一组规则提供简单的访问控制/***{@inheritdoc}*/publicfunctionbehaviors(){return['access'=>['class'=>AccessControl::class,......
  • yii2数据库访问对象
    yii2数据库访问对象配置数据库链接$db=newyii\db\Connection(['dsn'=>'mysql:host=localhost;dbname=xhj','username'=>'root','password'=>'123456',......
  • yii2 扩展
    yii2扩展示例安装扩展composerrequire--prefer-distyiisoft/yii2-imagine使用扩展useyii\imagine\Image;publicfunctionactionIndex(){Image::thumbnail('@webroot/img/test.jpg',120,120)->save(Yii::getAlias('@runt......
  • 【RabbitMQ】【消息队列】基础知识整理
    在什么场景下使用RabbitMQ?开源消息队列中间件,它提供了可靠的消息传递机制,可以在分布式中进行异步通信。常见场景:异步任务处理:处理耗时任务时,可使用MQ来实现异步任务处理。     常见场景举例:新用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方......
  • yii2表单使用
    yii2表单使用模型models/form/EntryForm.php<?phpnamespaceapp\models\form;useyii\base\Model;classEntryFormextendsModel{public$name;public$email;publicfunctionrules(){return[[['name',&......
  • yii2 rules验证规则大全
    yii2rules验证规则大全required : 必须值验证属性[['name','email'],'required'][['name'],'required','message'=>'提示信息']email : 邮箱验证[['email'],'email','message'=......
  • Yii2行为用法
    Yii2行为用法使用行为(behavior)可以在不修改现有类的情况下,对类的功能进行扩充行为类(app\common\behaviors\MyBehavior)<?phpnamespaceapp\common\behaviors;useyii\base\Behavior;classMyBehaviorextendsBehavior{public$name;public$age;......
  • yii2模块
    yii2模块模块是独立的软件单元,由模型, 视图, 控制器和其他支持组件组成, 终端用户可以访问在应用主体中已安装的模块的控制器, 模块被当成小应用主体来看待,和应用主体不同的是, 模块不能单独部署,必须属于某个应用主体。模块文件结构modulesadmincontrollers......
  • yii2服务定位器
    yii2服务定位器服务定位器是注册和访问组件的对象注册组件useyii\di\ServiceLocator;useyii\caching\FileCache;$locator=newServiceLocator;//通过一个可用于创建该组件的类名,注册"cache"(缓存)组件。$locator->set('cache','yii\caching\ApcCache');//通过......
  • yii2响应(Responses)
    yii2响应(Responses)状态码Yii::$app->response->statusCode=200;异常yii\web\BadRequestHttpException:statuscode400.yii\web\ConflictHttpException:statuscode409.yii\web\ForbiddenHttpException:statuscode403.yii\web\GoneHttpException:......