最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、安裝queue

composer require yiisoft/yii2-queue

二、配置queue

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

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

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

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

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

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

配置完成之后,我們?cè)诿钚猩蠄?zhí)行 php yii時(shí)發(fā)現(xiàn)已經(jīng)有了queue的相關(guān)命令了

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

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

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

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

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

php yii queue-migrate

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

三、使用queue

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

1:寫一個(gè)下載文件的隊(duì)列類:

<?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)用隊(duì)列類:

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這時(shí)候我們會(huì)發(fā)現(xiàn)有一個(gè)等待的隊(duì)列任務(wù)

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

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

相關(guān)文章

  • php生成隨機(jī)驗(yàn)證碼圖片的示例代碼

    php生成隨機(jī)驗(yàn)證碼圖片的示例代碼

    這篇文章主要介紹了php生成隨機(jī)驗(yàn)證碼圖片的示例代碼,結(jié)合實(shí)例形式分析了php生成隨機(jī)驗(yàn)證碼圖片的實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-09-09
  • php配置php-fpm啟動(dòng)參數(shù)及配置詳解

    php配置php-fpm啟動(dòng)參數(shù)及配置詳解

    php-fpm 啟動(dòng)參數(shù)及重要配置詳解,這個(gè)不用多說,做PHP開發(fā)的同學(xué)都需要用。
    2013-11-11
  • php下封裝較好的數(shù)字分頁方法

    php下封裝較好的數(shù)字分頁方法

    php下數(shù)字分頁函數(shù)代碼,需要的朋友可以參考下。
    2010-11-11
  • php實(shí)現(xiàn)的替換敏感字符串類實(shí)例

    php實(shí)現(xiàn)的替換敏感字符串類實(shí)例

    這篇文章主要介紹了php實(shí)現(xiàn)的替換敏感字符串類,包括了常見的非法字符串檢測、白名單、黑名單及字符替換等功能,非常實(shí)用,需要的朋友可以參考下
    2014-09-09
  • ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法

    ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法

    ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法,需要的朋友可以參考下,里面有詳細(xì)的步驟。
    2010-04-04
  • 一個(gè)完整的PHP類包含的七種語法說明

    一個(gè)完整的PHP類包含的七種語法說明

    這篇文章主要介紹了一個(gè)完整的PHP類包含的七種語法說明,這些語法包括屬性、靜態(tài)屬性、方法、靜態(tài)方法、類常量、構(gòu)造函數(shù)、析構(gòu)函數(shù),本文一一給代碼示例和詳細(xì)注解讓你快速了解類的寫法,需要的朋友可以參考下
    2015-06-06
  • php字符串截取問題

    php字符串截取問題

    我希望將一個(gè)字符串限長顯示,如果該字符串超過一定長數(shù),就截取前n個(gè)字符,后加省略號(hào)
    2006-11-11
  • 如何使用PHP依賴管理工具Composer

    如何使用PHP依賴管理工具Composer

    Composer是php的一個(gè)依賴管理工具,允許你聲明項(xiàng)目所依賴的代碼庫,它會(huì)在你的項(xiàng)目中為你安裝他們。這篇文章教你如何使用Composer。
    2021-05-05
  • 談?wù)凱HP連接Access數(shù)據(jù)庫的注意事項(xiàng)

    談?wù)凱HP連接Access數(shù)據(jù)庫的注意事項(xiàng)

    有的時(shí)候需要用php連接access數(shù)據(jù)庫,結(jié)果整了半天Access數(shù)據(jù)庫就是連接不上,查找很多資料,以下是些個(gè)人經(jīng)驗(yàn),希望能給需要連接access 數(shù)據(jù)的人帶來幫助。
    2016-08-08
  • PHP中獲取時(shí)間的下一周下個(gè)月的方法

    PHP中獲取時(shí)間的下一周下個(gè)月的方法

    PHP中獲取時(shí)間的下一周,下個(gè)月等通常用于定制服務(wù)的時(shí)候使用,比如包月會(huì)員,包年等等
    2014-03-03

最新評(píng)論

青田县| 古交市| 涿州市| 普洱| 阿克陶县| 林口县| 双江| 玛曲县| 洛隆县| 美姑县| 上思县| 广德县| 五大连池市| 榆林市| 治县。| 阿拉善右旗| 昆山市| 盐津县| 防城港市| 东宁县| 康乐县| 建始县| 外汇| 开江县| 集贤县| 达州市| 阿尔山市| 玉林市| 无极县| 渑池县| 莫力| 伊金霍洛旗| 阿拉善盟| 绥宁县| 哈密市| 抚顺县| 扶沟县| 阳山县| 民丰县| 阳高县| 四平市|