91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP5中thinkphp-queue怎么用

發布時間:2021-01-16 11:30:19 來源:億速云 閱讀:438 作者:小新 欄目:編程語言

這篇文章主要介紹ThinkPHP5中thinkphp-queue怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、安裝 thinkphp-queue

推薦使用Composer進行安裝,切換到項目的根目錄,執行: composer require topthink/think-queue

2、配置消息隊列的存儲環境

配置文件位于 application\extra\queue.php,如圖:ThinkPHP5中thinkphp-queue怎么用

使用Redis驅動,如果Redis環境還沒有安裝,請自行安裝哦,很簡單的,或者也可以使用其他類型驅動,如圖:ThinkPHP5中thinkphp-queue怎么用

3、任務的創建

我們在index模塊下,Index.php文件,建立一個名為 queue 的方法(一定要這樣么?當然不是,本教程,只是例子,你可以新建模塊,方法名也可以是其他),如圖:

ThinkPHP5中thinkphp-queue怎么用

ThinkPHP5中thinkphp-queue怎么用

4、任務消息的消費以及刪除處理

我們在 index模塊下創建一個 job 文件,該文件用來處理消費模式,如圖:ThinkPHP5中thinkphp-queue怎么用

在 Demo 這個類下,創建一個 fire 方法,該方法是消息隊列默認調用的方法。如圖:

ThinkPHP5中thinkphp-queue怎么用

以上就是完成任務的創建--》推送--》消費了。
在瀏覽器或者終端,執行一下我們 index/queue.html 方法,就完成創建以及推送了,關于任務消費,可以參考一下命令,在終端切換到項目的根目錄:

5、監聽任務并執行

php think queue:listen
php think queue:work –daemon(不加–daemon為執行單個任務)

兩種,具體的可選參數可以輸入命令加 –help 查看

可配合supervisor使用,保證進程常駐

1.1 命令模式
  • queue:subscribe 命令 [截至2017-02-15,作者暫未實現該模式,略過]

  • queue:work 命令

    work 命令: 該命令將啟動一個 work 進程來處理消息隊列。

    php think queue:work --queue helloJobQueue
  • queue:listen 命令

    listen 命令: 該命令將會創建一個 listen 父進程 ,然后由父進程通過 proc_open(‘php think queue:work’) 的方式來創建一個work 子 進程來處理消息隊列,且限制該work進程的執行時間。

    php think queue:listen --queue helloJobQueue
2.2 命令行參數
  • Work 模式

    php think queue:work \
    --daemon            //是否循環執行,如果不加該參數,則該命令處理完下一個消息就退出
    --queue  helloJobQueue  //要處理的隊列的名稱
    --delay  0 \        //如果本次任務執行拋出異常且任務未被刪除時,設置其下次執行前延遲多少秒,默認為0
    --force  \          //系統處于維護狀態時是否仍然處理任務,并未找到相關說明
    --memory 128 \      //該進程允許使用的內存上限,以 M 為單位
    --sleep  3 \        //如果隊列中無任務,則sleep多少秒后重新檢查(work+daemon模式)或者退出(listen或非daemon模式)
    --tries  2          //如果任務已經超過嘗試次數上限,則觸發‘任務嘗試次數超限’事件,默認為0
  • Listen 模式

    php think queue:listen \
    --queue  helloJobQueue \   //監聽的隊列的名稱
    --delay  0 \         //如果本次任務執行拋出異常且任務未被刪除時,設置其下次執行前延遲多少秒,默認為0
    --memory 128 \       //該進程允許使用的內存上限,以 M 為單位
    --sleep  3 \         //如果隊列中無任務,則多長時間后重新檢查,daemon模式下有效
    --tries  0 \         //如果任務已經超過重發次數上限,則進入失敗處理邏輯,默認為0
    --timeout 60         //創建的work子進程的允許執行的最長時間,以秒為單位

    可以看到 listen 模式下,不包含 --deamon 參數,原因下面會說明

Linux啟動守護進程,以tp5為例子

nohup php think queue:work --daemon --queue 任務名稱 &
 nohup php think queue:work --daemon --queue 任務名稱 &

在Linux查看任務數量,可以在終端輸入:jobs -l

ThinkPHP5中thinkphp-queue怎么用

以上是“ThinkPHP5中thinkphp-queue怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜梁县| 扎鲁特旗| 平果县| 区。| 刚察县| 屏东县| 绥阳县| 大田县| 清徐县| 屯昌县| 泰顺县| 甘谷县| 绥芬河市| 牡丹江市| 剑河县| 搜索| 东安县| 罗平县| 通州区| 枣强县| 绍兴市| 常山县| 巴林左旗| 安义县| 政和县| 偃师市| 扶余县| 武鸣县| 桐乡市| 奎屯市| 普定县| 松溪县| 武安市| 安化县| 涿鹿县| 资中县| 翼城县| 绥江县| 密山市| 茂名市| 玛沁县|