tp5.0 queue 队列操作
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                tp5.0 queue 队列操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                檢查是否安裝redis(沒有請自行百度安裝):
phpinfo:
配置thinkphp-queue,沒有請執行 composer require topthink/think-queue 加入:
創建 隊列 文件:
use think\Queue;class TestQueue {// 測試public function queue(){// 推遲 n 秒執行 $queue = '指定隊列名'Queue::later('2', 'app\message\job\Work','aa@qq.com','');// 執行 Work 的 send 方法//Queue::push('app\message\job\Work@send','aa@qq.com');// 默認執行 Work 的 fire 方法//Queue::push('app\message\job\Work','aa@qq.com'); echo '加入隊列成功';} }
隊列 邏輯處理 文件:
namespace app\message\job;use think\queue\Job;class Work {// 默認執行的方法public function fire(Job $job, $data){$isJobDone = $this->send($data);if ($isJobDone) {//成功刪除任務$job->delete();} else {//任務輪詢4次后刪除if ($job->attempts() > 3) {// 第1種處理方式:重新發布任務,該任務延遲10秒后再執行//$job->release(10);// 第2種處理方式:原任務的基礎上1分鐘執行一次并增加嘗試次數//$job->failed();// 第3種處理方式:刪除任務$job->delete();}}}/*** 根據消息中的數據進行實際的業務處理* @param array|mixed $data 發布任務時自定義的數據* @return boolean 任務執行的結果*/private function send($data){// 開始執行隊列的邏輯echo 'int ....';echo PHP_EOL;echo 'data: ' .$data;echo PHP_EOL;// ...return true;} }
?
后臺監聽即可:
php think queue:listen
php think queue:listen --queue 'queuename' // 監聽指定隊列
?
訪問 127.0.0.1/message/testqueue? (路由自行配置)
控制臺查看
?
參考文檔:https://github.com/coolseven/notes/blob/master/thinkphp-queue/README.md
守護進程(supervisor):https://blog.csdn.net/qq_34856247/article/details/86741533
轉載于:https://www.cnblogs.com/xdtx/p/9540904.html
總結
以上是生活随笔為你收集整理的tp5.0 queue 队列操作的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 检查肠镜多少钱啊?
- 下一篇: 福特GT参考价是多少
