欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Yii使用queue實現(xiàn)隊列流程講解

 更新時間:2022年11月02日 16:11:21   作者:huaweichenai  
Yii是一個高性能的PHP5的web應(yīng)用程序開發(fā)框架。通過一個簡單的命令行工具yiic可以快速創(chuàng)建一個web應(yīng)用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開發(fā)

一、安裝queue

composer require yiisoft/yii2-queue

二、配置queue

安裝queue之后我們在項目中運(yùn)行 php yii時這時候我們發(fā)現(xiàn)沒有queue的相關(guān)命令,這是怎么回事呢?

這是由于我們沒有對queue進(jìn)行配置

注意:這里配置queue時必須使得web和console都有關(guān)于queue的配置,例如yii的基礎(chǔ)版的console.php和web.php文件都需要進(jìn)行queue配置

yii的queue隊列支持多種驅(qū)動,例:DB、Redis、RabbitMQ、AMQP、Beans.和Gearman

這里我是用的時DB(數(shù)據(jù)庫)驅(qū)動,如果你想使用其他的驅(qū)動,配置相關(guān)可以參考:傳送門

'bootstrap' => [
'queue'//注冊控制臺命令
],
'components' => [
        'queue' => [
            'class' => 'yii\queue\db\Queue',//需要引入的queue類
            'db' => 'db',//數(shù)據(jù)庫配置
            'tableName' => '{{%queue}}',//需要新建的隊列表名
            'channel' => 'test_db_queue',//隊列頻道密鑰
            'mutex' => 'yii\mutex\MysqlMutex',//用于同步查詢
            'ttr' => 300,//對應(yīng)默認(rèn)最大執(zhí)行時長(秒)
        ],
    ],

配置完成之后,我們在命令行上執(zhí)行 php yii時發(fā)現(xiàn)已經(jīng)有了queue的相關(guān)命令了

queue相關(guān)命令說明:

php yii queue/clear #清除隊列
php yii queue/exec #執(zhí)行隊列任務(wù)
php yii queue/info #顯示有關(guān)隊列狀態(tài)的信息(默認(rèn)為此命令)
php yii queue/listen #監(jiān)聽隊列并運(yùn)行隊列任務(wù)
php yii queue/remove #按照id刪除隊列任務(wù)
php yii queue/run #運(yùn)行所有隊列任務(wù)

由于我們使用的時DB驅(qū)動這時候我們需要新建一個對應(yīng)的queue隊列表,在yii中queue的隊列組件中提供了queue隊列表創(chuàng)建的方法,我們只需要在腳本配置文件中進(jìn)行配置即可,配置如下:

'controllerMap' => [
        'queue-migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationPath' => null,
            'migrationNamespaces' => [
                'yii\queue\db\migrations',
            ],
        ],
    ],

主要上述的配置不是在components的配置內(nèi)部,而是與其同級,配置完成之后我們在命令行執(zhí)行php yii發(fā)現(xiàn)如下命令queue-migrate,此命令就是幫助我們?nèi)バ陆ㄒ粋€queue隊列數(shù)據(jù)表

php yii queue-migrate

這時候我們就可以在我們的數(shù)據(jù)庫中發(fā)現(xiàn)對了一張queue表

三、使用queue

下面我寫一個簡單的下載文件隊列進(jìn)行測試

1:寫一個下載文件的隊列類:

<?php
namespace app\components;
use Yii;
use yii\base\BaseObject;
/**
 * Class DownloadJob
 * @package app\components
 */
class DownloadJob extends BaseObject implements \yii\queue\JobInterface
{
    public $url;
    public $file;
    public function execute($queue)
    {
        file_put_contents($this->file, file_get_contents($this->url));
    }
}

2:調(diào)用隊列類:

Yii::$app->queue->push(new DownloadJob([
            'url' => 'https://api.wj0511.com/static/upload/pic/20181030132555-623070617127980.jpg',
            'file' => '/tmp/image.jpg',
        ]));
你也可以推遲指定秒執(zhí)行
//推遲5秒
Yii::$app->queue->delay(5 * 60)->push(new DownloadJob([
            'url' => 'https://api.wj0511.com/static/upload/pic/20181030132555-623070617127980.jpg',
            'file' => '/tmp/image.jpg',
        ]));

運(yùn)行調(diào)用方法后,在命令行執(zhí)行 php yii queue這時候我們會發(fā)現(xiàn)有一個等待的隊列任務(wù)

這時候我們可以使用php yii queue/run 或php yii queue/listen去執(zhí)行隊列任務(wù)php yii queue/listen -v可以看到執(zhí)行隊列的信息

到此這篇關(guān)于Yii使用queue實現(xiàn)隊列流程講解的文章就介紹到這了,更多相關(guān)Yii queue內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP實現(xiàn)的堆排序算法詳解

    PHP實現(xiàn)的堆排序算法詳解

    這篇文章主要介紹了PHP實現(xiàn)的堆排序算法,結(jié)合實例形式分析了php堆排序的原理、實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • PHP定界符php和html代碼混編方法實例詳解

    PHP定界符php和html代碼混編方法實例詳解

    這篇文章主要為大家介紹了PHP定界符php和html代碼混編方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 詳解PHP優(yōu)化巨量關(guān)鍵詞的匹配

    詳解PHP優(yōu)化巨量關(guān)鍵詞的匹配

    本文完整介紹了我的實現(xiàn)方式,如何將需要運(yùn)行十小時的任務(wù)優(yōu)化到十分鐘以內(nèi)。雖然實現(xiàn)語言是PHP,但本文介紹的更多的思想,應(yīng)該能給大家一些幫助。
    2021-05-05
  • 修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤

    修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤

    本文給大家介紹了修復(fù)ShopNC使用QQ 互聯(lián)時提示100010 錯誤的方法,以及QQ互聯(lián)里面的處理方法,有需要的小伙伴可以參考下
    2015-11-11
  • 解析用PHP實現(xiàn)var_export的詳細(xì)介紹

    解析用PHP實現(xiàn)var_export的詳細(xì)介紹

    本篇文章是對使用PHP實現(xiàn)var_export的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實現(xiàn)下載功能的代碼

    PHP實現(xiàn)下載功能的代碼

    PHP實現(xiàn)下載功能的代碼,并實現(xiàn)安全下載,隱藏文件真實地址等,需要的朋友可以參考下
    2012-09-09
  • PHP 防注入函數(shù)(格式化數(shù)據(jù))

    PHP 防注入函數(shù)(格式化數(shù)據(jù))

    下面的函數(shù)通過格式化數(shù)據(jù)的方法實現(xiàn)數(shù)據(jù)的addslashes,不過也建議大家參考下discuz的防注入函數(shù)。
    2011-08-08
  • php下MYSQL limit的優(yōu)化

    php下MYSQL limit的優(yōu)化

    MYSQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。mysql的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
    2008-01-01
  • php繪制一個扇形的方法

    php繪制一個扇形的方法

    這篇文章主要介紹了php繪制一個扇形的方法,涉及GD庫中imagefilledarc方法的使用技巧,需要的朋友可以參考下
    2015-01-01
  • PHP隨機(jī)生成用戶信息實例分析

    PHP隨機(jī)生成用戶信息實例分析

    在本篇文章里小編給大家整理的是一篇關(guān)于PHP隨機(jī)生成用戶信息實例分析內(nèi)容,對此有興趣的朋友們可以測試參考下。
    2021-12-12

最新評論