好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Laravel使用消息隊列需要注意的一些問題

Laravel使用消息隊列需要注意的一些問題

熱門標簽:專業電話機器人批發商 400電話辦理福州市 深圳外呼系統收費 江蘇外呼電銷機器人報價 離石地圖標注 400電話申請方法收費 長沙crm外呼系統業務 南寧高頻外呼回撥系統哪家好 電話機器人危險嗎

前言

消息隊列對于大型的Web項目來說是必不可少的一個模塊,通過消息隊列可以解決大并發和多種語言通信接口等問題。對于大并發的問題,可以將耗時的任務或者不能同時大量并行的任務封裝起來傳輸到消息隊列中,由處理程序不斷從消息隊列中提取消息并進行處理,這樣通過消息隊列的緩沖可以使得在大并發情況下不再阻塞,如果性能不夠用還可以添加多個處理任務從消息隊列中獲取消息進行處理。比如數據庫的操作,當對數據庫的讀、寫操作過多時就會存在鎖表等問題,讀的問題可以通過緩存等方案解決,寫的問題就需要消息隊列來解決。而且,在大型的Web項目開發中,很多情況下不可能通過一種語言實現,需要發揮不同語言的優勢,比如PHP,雖然在理論意義上它可以做Web開發中的所有事情,但是有些問題用它解決效率將會非常低,比如實時socket連接和分布式事務處理等。

使用 Laravel 的消息隊列處理異步任務,Redis 作為隊列數據庫,Supervisor 監控腳本異常中斷并自動重啟,這是 Laravel 處理隊列任務的標準流程,但是實際中可能還會出現各種各樣的問題,為了保證系統可靠性,還要注意幾個問題。

一、執行失敗重試次數設置

一定要設置任務執行失敗重試次數,避免無限失敗重試,超過重試次數 Laravel 會默認寫到失敗任務表中,也可以自己寫執行失敗后續處理邏輯。

php artisan queue:work redis --tries=3

需要先執行以下命令創建數據表:

php artisan queue:failed-table
php artisan migrate

二、程序異常的處理

有時候程序執行過程會發生異常,比如依賴其他接口,請求 HTTP 接口超時等等,如果不捕捉異常,那么當前這個隊列就會中斷不能繼續運行下去,比如給 10000 個用戶推送內容,需要依賴接口推送,如果中間的請求掛了就會影響到后面的推送。

這里的異常是指程序執行過程中發生的異常,不是指常駐進程掛掉,程序異常不一定導致常駐進程中斷,況且進程中斷有 Supervisor 監控并重啟。

如捕獲異常代碼片段:

try {
 $r = $client->request('POST', '', [
  'query' => [
   'client_name'  => 'filemail',
   'client_version' => '1.0',
   'client_sequence' => 0,
   'uid'    => 692934013,//119481237
   'r'    => 1508312484,
  ],
  'body' => \GuzzleHttp\json_encode($body),
 ]);
 $result = $r->getBody()->getContents();
 $result = json_decode($result, true);
 if ($result['result'] == 0) {
  info("sendMail fail:" . json_encode($result));
  $this->pushLog($task['id'], $task['mail_id'], implode(',', $userIds), json_encode($result), 0);
 } else {
  Log::warning("sendMail fail:" . json_encode($result));
  $this->pushLog($task['id'], $task['mail_id'], implode(',', $userIds), json_encode($result), $result['result']);
 }
} catch (RequestException $e) {
 Log::warning('RequestException' . $e->getMessage());
} catch (Exception $e) {
 Log::emergency('Exception' . $e->getMessage());
}

三、修改代碼記得重啟 Supervisor

最后一點,修改了處理隊列的程序,記得要重啟 Supervisor,否則腳本不會生效。

Laravel 往 Redis 寫隊列的數據結構

隊列用 list 類型存儲,如圖:

 

value 內容如下:

{
 "job": "Illuminate\\Queue\\CallQueuedHandler@call",
 "data": {
 "commandName": "App\\Jobs\\SendFile",
 "command": "O:17:\"App\\Jobs\\SendFile\":5:{s:23:\"\u0000App\\Jobs\\SendFile\u0000task\";a:8:{s:5:\"title\";s:4:\"1111\";s:4:\"note\";s:2:\"11\";s:6:\"reward\";s:0:\"\";s:7:\"mail_id\";s:5:\"66681\";s:4:\"nums\";i:20;s:8:\"uid_file\";s:33:\"uidfile\/file-66681-1513058185.txt\";s:5:\"gcids\";s:40:\"1B9DD95645AAE8119F7DA9B9FF738D52BC8A1BD5\";s:2:\"id\";i:29;}s:6:\"\u0000*\u0000job\";N;s:10:\"connection\";N;s:5:\"queue\";s:8:\"sendfile\";s:5:\"delay\";N;}"
 },
 "id": "l0mjsUthbxm4TgIJNUH13km9N8DIpErK",
 "attempts": 1
}

包含失敗重試次數,隊列標識,處理隊列的類,以及隊列的數據等等。

參考鏈接

Laravel 官方文檔 Queue 隊列:

https://laravel.com/docs/5.5/queues

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • laravel5.6 框架郵件隊列database驅動簡單demo示例
  • Laravel使用Queue隊列的技巧匯總
  • Docker部署Laravel應用實現隊列&任務調度
  • Laravel 6 將新增為指定隊列任務設置中間件的功能
  • Laravel 隊列使用的實現
  • Laravel框架隊列原理與用法分析
  • Laravel中為什么不使用blpop取隊列詳析
  • 關于 Laravel Redis 多個進程同時取隊列問題詳解
  • 源碼分析 Laravel 重復執行同一個隊列任務的原因
  • Laravel中利用隊列發送郵件的方法示例
  • 淺談Laravel隊列實現原理解決問題記錄
  • 淺析Laravel5中隊列的配置及使用
  • PHP的Laravel框架中使用消息隊列queue及異步隊列的方法
  • Laravel 4.2 中隊列服務(queue)使用感受
  • Laravel框架中隊列和工作(Queues、Jobs)操作實例詳解

標簽:曲靖 興安盟 濱州 南京 太原 南昌 株洲 白酒營銷

巨人網絡通訊聲明:本文標題《Laravel使用消息隊列需要注意的一些問題》,本文關鍵詞  Laravel,使用,消息,隊列,需要,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel使用消息隊列需要注意的一些問題》相關的同類信息!
  • 本頁收集關于Laravel使用消息隊列需要注意的一些問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 晚上双人做运动表情包gif| 97色伦图片97色伦图影院久久| 我把护士日出水了90分钟视频| 7m第一福利500精品视频| 国产高清在线精品一区二区app| 三上悠亚作品番号| 西西人体www大胆高清视频| 久久久久国产精品嫩草影院欧洲 | 瑜伽私人教练三级| 古代h文| 国产黄色免费网站| 秋霞最新午夜伦伦A片黑狐| 我的妺妺伦理HD中字| 刮伦真实在线观看| 久久久久女人精品毛片| 国产AV精品国语对白河南小伙| 国产自产21区丝袜| 午夜精品一区二区三区在线视频| 亚洲欧美天堂综合一区青草久久久| 亚洲一区二区三区四区在线观看| 精品中文字幕高清久久久三级 | 护士半夜给病人啪啪| 美女视频黄的免费视频网页| 范冰冰三?在线播放| 麻豆E奶女教师国产剧情| 算你色永久免费播放视频| 网禁??拗女稀缺1366| 波多野结衣与老人公gvg在线| 啊轻点灬太粗嗯太深了用力电视剧| 欧美激情视频免费| 美女mm131爽爽爽毛片图片| 老师好大用力深一点| 男女后进式猛烈XXOO网站| 亚洲国产日韩a在线欧美www | japanese喷奶水在线观看| 亚洲91网站| 老头快点使劲再深点别停| 黑帮少爷爱上我泰剧在线看| 夜夜换美男洛樱H未删减TXT| 学校女厕偷拍秘?网站| 日本丰满白嫩BBwBBw|