tp的think queue的佇列使用

2021-10-20 23:52:46 字數 1912 閱讀 3395

執行命令 佇列命令

守護程序形式監聽 php think queue:work --daemon --queue helloqueue

執行單個佇列 php think queue:work --queue helloqueue

守護程序監聽 php think queue:listen --queue helloqueue

hellojobqueue為加入佇列的名稱

先使用composer 安裝 tp的佇列 think-queue

composer require topthink/think-queue

安裝注意事項 根據你當前的框架版本選擇合適的版本 tp5.1 一般安裝 2.0.4版本

安裝完成以後 執行 php think 檢視是否有命令 queue 出現 如就證明安裝成功

內容如下

return [

// 'connector' => 'sync'

'connector' => 'redis', // redis 驅動

'expire' => env('redis_expire',60), // 任務的過期時間,預設為60秒; 若要禁用,則設定為 null

'default' => 'template', // 預設的佇列名稱

'host' => env('redis_host','127.0.0.1'), // redis 主機ip

'port' => env('redis_port',6379), // redis 埠

'password' => env('redis_password',''), // redis 密碼

'select' => 0, // 使用哪乙個 db,預設為 db0

'timeout' => env('redis_timeout',0), // redis連線的超時時間

'persistent' => env('redis_persistent',false), // 是否是長連線

];如果使用redis配置 需要把驅動更改為redis驅動即可

在控制器中建立乙個方法,作用是把產生新的訊息推送到helloqueue佇列

use think\queue;

class test extends controller

}}每乙個佇列有對應的消費者去處理消費,訊息產生了以後,就會把推送的資料傳送到消費者裡面進行消費處理。

對應你可以在消費者裡面處理業務邏輯**

<?php

use think\exception;

use think\queue\job;

class check

else }}

/*** 任務達到最大重試次數後,失敗記錄資訊

* @param array $data 資料

*/public function failed($data)

/*** 根據訊息中的資料進行實際的業務處理

* @param array|mixed $data 發布任務時自定義的資料--返回陣列

* @return boolean 任務執行的結果

*/public function dojob($data)

else

}}

php think queue:work --queue helloqueue
以上就是完成了簡單的tp自帶的訊息佇列使用情況。

tp的命名空間

當開發大型專案的時候,可能需要成千上萬的檔案,物件導向通過命名空間解決這個問題的。php命名空間是php5.3以後出現的。命名空間中可以出現 類,函式,常 只有const定義的常量命名空間才有效。命名空間的名字必須符合php命名的規則。namespace china const nation 中國 ...

tp3 2和tp5 0的區別

1 控制器輸出 5 return this fetch 3.2 this display 3.2 5 g debug 記錄時間和記憶體使用情況 e exception 丟擲異常處理 c config 獲取和設定配置引數 i input 獲取輸入資料 w widget d 例項化model s 快取化...

tp3與tp5的區別

不論是學習使用tp3 tp5還是面試,我們經常都會提到 thinkphp3 和thinkphp5 的一些區別有哪些,下面我對這兩者的一些區別做了一些總結 表面的區別,並不涉及核心 在tp3中,我們輸出檢視是 this display 但是在 tp5中,輸出檢視函式是 this fetch 在tp3中...