搜尋
首頁php框架ThinkPHP你會使用ThinkPHP5中thinkphp-queue嗎?

下面由thinkphp框架教學專欄為大家介紹使用ThinkPHP5中thinkphp-queue的方法,希望對需要的朋友有幫助!

你會使用ThinkPHP5中thinkphp-queue嗎?

最近小編收到群組裡面的小夥伴在使用ThinkPHP5.0的框架時,不知道如何使用php-queue(實在尷尬,網路上很多這方面的教程)。哈哈,不想參考也沒關係,小編就具體地走一遍吧~~關於什麼是隊列?隊列的解決什麼?隊列有哪些場景? ……等等這些問題,開發者請自行先去了解,還有本案例只針對ThinkPHP框架進行具體操作哦。

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嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:oschina。如有侵權,請聯絡admin@php.cn刪除
ThinkPHP內置測試框架的關鍵功能是什麼?ThinkPHP內置測試框架的關鍵功能是什麼?Mar 18, 2025 pm 05:01 PM

本文討論了ThinkPHP的內置測試框架,突出了其關鍵功能(例如單元和集成測試),以及它如何通過早期的錯誤檢測和改進的代碼質量來增強應用程序可靠性。

如何使用ThinkPHP來構建實時股票市場數據源?如何使用ThinkPHP來構建實時股票市場數據源?Mar 18, 2025 pm 04:57 PM

文章討論了使用ThinkPHP進行實時股票市場數據提要,重點是設置,數據準確性,優化和安全措施。

在無服務器體系結構中使用ThinkPHP的關鍵注意事項是什麼?在無服務器體系結構中使用ThinkPHP的關鍵注意事項是什麼?Mar 18, 2025 pm 04:54 PM

本文討論了在無服務器體系結構中使用ThinkPHP的關鍵注意事項,專注於性能優化,無狀態設計和安全性。它突出了諸如成本效率和可擴展性之類的收益,但也應對挑戰

如何在ThinkPHP微服務中實現服務發現和負載平衡?如何在ThinkPHP微服務中實現服務發現和負載平衡?Mar 18, 2025 pm 04:51 PM

本文討論了在ThinkPHP微服務中實施服務發現和負載平衡,重點是設置,最佳實踐,集成方法和推薦工具。[159個字符]

ThinkPHP依賴性注入容器的高級功能是什麼?ThinkPHP依賴性注入容器的高級功能是什麼?Mar 18, 2025 pm 04:50 PM

ThinkPHP的IOC容器提供了高級功能,例如懶惰加載,上下文綁定和方法注入PHP App中有效依賴性管理的方法。Character計數:159

如何使用ThinkPHP來構建實時協作工具?如何使用ThinkPHP來構建實時協作工具?Mar 18, 2025 pm 04:49 PM

本文討論了使用ThinkPHP來構建實時協作工具,重點關注設置,Websocket集成和安全性最佳實踐。

使用ThinkPHP來構建SaaS應用程序的主要好處是什麼?使用ThinkPHP來構建SaaS應用程序的主要好處是什麼?Mar 18, 2025 pm 04:46 PM

ThinkPHP具有輕巧的設計,MVC架構和可擴展性。它通過各種功能提高可擴展性,加快開發並提高安全性。

如何使用ThinkPHP和RabbitMQ構建分佈式任務隊列系統?如何使用ThinkPHP和RabbitMQ構建分佈式任務隊列系統?Mar 18, 2025 pm 04:45 PM

本文概述了使用ThinkPhp和RabbitMQ構建分佈式任務隊列系統,重點是安裝,配置,任務管理和可擴展性。關鍵問題包括確保高可用性,避免常見的陷阱,例如不當

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能