Yii2队列拓展 yii2-queue配置使用

composer安装

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

或者在composer.json添加:

"yiisoft/yii2-queue": "~2.0.0"

项目配置

注册queue组件,redis配置,queue配置以及指定queue的驱动方式为redis

return [  
    'bootstrap'=> [
        'log',
        'queue',
    ],

    'components'=> [
        'redis'=>[
            'class'=>'yiiredisConnection',
            'hostname'=>'127.0.0.1',
            'port'=>6379,
            'database'=>0,
        ],

        'queue'=> [
            'class'=> yiiqueueredisQueue::class,
            'redis'=>'redis',// Redis connection component or its config
            'channel'=>'queue',// Queue channel key queue在redis中key的前缀
            'as log'=> yiiqueueLogBehavior::class,
        ],
    ],
];    

使用queue

定义类:

需要被发送到队列的任务应该定义为一个类,集成自yiibaseObject 实现yiiqueueJob接口(必须实现execute方法,实现该任务的动作)

class MailJobextends yiibaseObject implementsyiiqueueJob
{

    public$subject='这是邮箱标题';  
    public$body='<br>  
    邮箱主体<br>  
    time:';
    public$setTo= [];
    
    public functionexecute($queue)
    {
        //队列实例需要执行的代码体
        $mail= Yii::$app->mailer->compose();
        $mail->setTo($this->setTo);
        $mail->setSubject($this->subject);
        $this->body.= date('Y-m-d H:i:s',time());
        //$mail->setTextBody('zheshisha ');  //发布纯文字文本
        $mail->setHtmlBody($this->body);//发布可以带html标签的文本
        
        if($mail->send()) {
            echo"success";
        } else {
            echo"false";
        }
        //TODO: Implement execute() method.
        
    }

}

操作队列:

    //将作业推送到队列并获得其ID  
    $id= Yii::$app->queue->delay()->push(newMailJob([
        'setTo'=>'xxxx@gmail.com',
    ]));
    以下为获取该队列状态:
    
    //这个作业等待执行。
    Yii::$app->queue->isWaiting($id);
    // Worker从队列获取作业,并执行它。
    Yii::$app->queue->isReserved($id);
    // Worker作业执行完成。
    Yii::$app->queue->isDone($id);

控制台命令

控制台用于监听和处理队列任务。  
yii queue/listen [wait] 
//listen命令启动一个守护进程,它可以无限查询队列。如果有新的任务,他们立即得到并执行。 
//wait是下一次查询队列的时间 当命令正确地通过[supervisor](https://link.jianshu.com?t=https://github.com/yiisoft/yii2-queue/blob/master/docs/guide-zh-CN/worker.md#supervisor)来实现时,这种方法是最有效的。


yii queue/run
//run命令获取并执行循环中的任务,直到队列为空。适用与[cron](https://link.jianshu.com?t=https://github.com/yiisoft/yii2-queue/blob/master/docs/guide-zh-CN/worker.md#cron)。

run与listen命令的参数:
--verbose,-v: 将执行状态输出到控制台。
--isolate: 详细模式执行作业。如果启用,将打印每个作业的执行结果。
--color: 高亮显示输出结果。

yii queue/info //info命令打印关于队列状态的信息。

业务可在crontab中建立定时执行该命令,即可按入队顺序执行脚本

https://github.com/yiisoft/yii2-queue
Responses
  1. Hello. And Bye. http://kfsdfjkalkjszzz.com

    Reply
  2. Автоновости на Avtodomen.ru: всё о машинах и авторынке — Интересные новости о выпусках, разработках, происшествий об автомобилей http://avtodomen.ru/ - More info!

    Reply
  3. Good day! Do you know if they make any plugins to help with SEO? I'm trying to get my blog to rank for some targeted keywords but I'm not seeing very good success. If you know of any please share. Many thanks!

    Reply
  4. Thomasabows

    Гидра - это один сайт в клирнете, какой доказательство для гидру зеркало без прокси и тор браузера. Сайт Гидра Онион обладает интуитивно-понятным и удобным интерфейсом. Альфа и другие стимуляторы тоже присутствуют для полках большинства магазинов. Доменные имена онион генерируются колоссально просто, применяя для этого публичные ключи. [url=https://freehydra.ru/kak-polzovatsja-hydra-cherez-tor/14142-gidra-onion-magazin.html]РіРёРґСЂР° РѕРЅРёРѕРЅ магазин[/url] [url=https://vavada-379.online/kak-vyjti-v-gidru-s-tor/24508-gidra-onion-sajt-original-hydrapchela-com.html]РіРёРґСЂР° РѕРЅРёРѕРЅ сайт оригинал hydrapchela com[/url] [url=https://1wzof.top/kak-najti-hydra-v-tore/52362-hydra-onion-ssylka-hydra4supports-com.html]hydra onion ссылка hydra4supports com[/url] [url=https://federalniyparktaxi.online/kak-polzovatsja-gidroj-v-tore/75362-gidra-onion-ssylka-tor-hydra6rudf3j4hww-com.html]РіРёРґСЂР° РѕРЅРёРѕРЅ ссылка тор hydra6rudf3j4hww com[/url] [url=https://nakhodka-ncot.ru/kak-polzovatsja-gidroj-v-tore/42644-hidra-ru.html]hidra ru[/url] DD#1dD%9

    Reply
  5. Ronalddic

    Покупка товара ссылка на Hydra Сейчас мы постараемся разобраться со всеми тонкостями регистрации и приобретения товаров на Гидре. Чтобы не быть голословными и не лить «воду 23:47 Загружаем фото в диспут Гидры прилагаем доказательства правильно. Единственное, что отображается продавцу, это ваш никнейм. Ассортимент не оставит никого равнодушным и каждый товар найдет своего покупателя. [url=https://razvitie66.ru/gidra-dlja-tor-brauzer/44583-sajt-gidry-na-tore-zerkalo.html]сайт РіРёРґСЂС‹ РЅР° торе зеркало[/url] [url=https://federalniyparktaxi.ru/kak-najti-pravilnyj-adres-gidry/02641-ssylka-gidra-dlja-tor.html]ссылка РіРёРґСЂР° для тор[/url] [url=https://vavada-379.ru/kak-vojti-v-gidru/82086-ssylka-na-gidru-v-tore-oficialnaja-ssylka.html]ссылка РЅР° РіРёРґСЂСѓ РІ торе официальная ссылка[/url] [url=https://nakhodka-ncot.ru/kak-polzovatsja-gidroj-v-tore/42890-ssylka-na-sajt-hydra-onion-hydra6rudf3j4hww-com.html]ссылка РЅР° сайт hydra onion hydra6rudf3j4hww com[/url] [url=https://vavada-379.online/gidra-sajt-momentalnyh-pokupok-kak-zajti/29653-original-ssylka-na-gidru-hydraruzxpnew8onion-com.html]оригинал ссылка РЅР° РіРёРґСЂСѓ hydraruzxpnew8onion com[/url] DD#2#55698$

    Reply
  6. Здравствуйте друзья[url=https://heavydutytool.by/].[/url] Предлагаем Вашему вниманию замечательный сайт для заказа инструмента Milwaukee. Фирменный магазин Milwaukee предлагает широкий перечень инструментов и расходных материалов Milwaukee для бытовых и профессиональных целей.Инструменты бренда Milwaukee созданы благодаря новаторским разработкам, инструмент Milwaukee отличается высочайшим качеством и высокой производительностью. Все инструменты Milwaukee успешно реализуются по всему миру. В линейку товаров бренда входит более чем 3500 видов электроинструментов класса Heavy Duty и 4000 аксессуаров для выполнения различных видов работ. Вся продукция отличается наилучшим соотношением цены, качества и срока службы инструмента. Каждому клиенту предоставляется индивидуальный подход, подбор необходимого инструмента исходя из целей использования. Наши специалисты отдела электроинструментов и аксессуаров профессионально проконсультируют каждого клиента обратившегося в фирменный магазин Milwaukee. Весь ассортимент электроинструментов Milwaukee Вы можете купить в нашем фирменном магазине Milwaukee. Мы осуществляем бесплатную доставку по всей территории Беларуси в сжатые сроки Мы будем рады Вас видеть у нас на сайте Увидимся! [url=https://heavydutytool.by/]4932478899[/url] [url=https://heavydutytool.by/]4933478969[/url] [url=https://heavydutytool.by/]4932478035[/url] [url=https://heavydutytool.by/]4932373354[/url] [url=https://heavydutytool.by/]4932343273[/url]

    Reply