婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel框架隊列原理與用法分析

Laravel框架隊列原理與用法分析

熱門標(biāo)簽:電信外呼系統(tǒng)多少錢一個月 宿州正規(guī)外呼系統(tǒng)軟件 桂陽公司如何做地圖標(biāo)注 企業(yè)400電話辦理多少費(fèi)用 代理打電話機(jī)器人 合肥企業(yè)外呼系統(tǒng)線路 神龍斗士電話機(jī)器人 萍鄉(xiāng)商鋪地圖標(biāo)注 太原400電話申請流程

本文實例講述了Laravel框架隊列原理與用法。分享給大家供大家參考,具體如下:

最近有朋友有朋友問laravel隊列的實現(xiàn)原理和經(jīng)驗,剛好用過所以整理了一下分享給大家。

laravel隊列配置參見:http://d.laravel-china.org/docs/5.1/queues

原理分析

創(chuàng)建分發(fā)任務(wù)方法

class TestController extends Controller
{
  //其他方法
  //發(fā)送消息
  public function SendMessage(Request $request){
    ...
    $this->dispatch((new SendMessage($sendParams))->onQueue('snail:SendMessage'));
  }
}

內(nèi)部實現(xiàn):

創(chuàng)建消費(fèi)任務(wù)

命令行運(yùn)行如下命令:

/home/niuyufu/php/bin/php /home/niuyufu/webroot/assistant_api/artisan queue:work --queue=snail:SendMessage --tries=3 --memory=512 --daemon

內(nèi)部實現(xiàn):

隊列消息分析:

監(jiān)控redis對應(yīng)隊列消息,具體產(chǎn)生的消息操作,如下:

tail -f | redis-cli -h 10.94.120.13 -p 6380 monitor | grep "queues:snail"
1492446053.406282 [0 10.95.117.155:57132] "WATCH" "queues:snail:SendMessage:delayed"
1492446053.406452 [0 10.95.117.155:57132] "ZRANGEBYSCORE" "queues:snail:SendMessage:delayed" "-inf" "1492446053"
1492446053.406754 [0 10.95.117.155:57132] "WATCH" "queues:snail:SendMessage:reserved"
1492446053.406842 [0 10.95.117.155:57132] "ZRANGEBYSCORE" "queues:snail:SendMessage:reserved" "-inf" "1492446053"
1492446053.407029 [0 10.95.117.155:57132] "LPOP" "queues:snail:SendMessage"
1492446053.407700 [0 10.95.117.155:57132] "ZADD" "queues:snail:SendMessage:reserved" "1492446113" "{job}"
1492446053.463953 [0 10.95.117.155:57132] "ZREM" "queues:snail:SendMessage:reserved" "{job}"

PS:如果你的redis是codis的話,注意了,因為codis禁用方法列表

KEYS, MOVE, OBJECT, RENAME, RENAMENX, SORT, SCAN, BITOP,MSETNX, BLPOP, BRPOP, BRPOPLPUSH, PSUBSCRIBE,PUBLISH, PUNSUBSCRIBE, SUBSCRIBE, UNSUBSCRIBE, DISCARD, EXEC, MULTI, UNWATCH, WATCH, SCRIPT EXISTS, SCRIPT FLUSH, SCRIPT KILL, SCRIPT LOAD, AUTH, ECHO, SELECT, BGREWRITEAOF, BGSAVE, CLIENT KILL, CLIENT LIST, CONFIG GET, CONFIG SET, CONFIG RESETSTAT, DBSIZE, DEBUG OBJECT, DEBUG SEGFAULT, FLUSHALL, FLUSHDB, INFO, LASTSAVE, MONITOR, SAVE, SHUTDOWN, SLAVEOF, SLOWLOG, SYNC, TIME

所以執(zhí)行消費(fèi)任務(wù)會有以下錯誤:

[Predis\Connection\ConnectionException]
Error while reading line from the server. [tcp://100.90.154.39:3000]

解決方法為修改config/queue.php

'redis' => [
  'driver' => 'redis',
  'connection' => 'default',
  'queue' => 'default',
  'expire' => null,  //禁用即可
],

優(yōu)化日志處理:

如果你的系統(tǒng)有切割文件日志操作。會發(fā)現(xiàn)雖然日志被切分了,但程序卻沒有往新文件里寫入。如,2017-04-18 13:50啟動的項目,日志會一直打到 snail.log.2017041813上。

改進(jìn)方案:

app/Jobs/Job.php文件中添加如下方法:

public function releaseLoggerFile(){
  $handles=\Log::getMonolog()->getHandlers();
  if(!is_array($handles) || empty($handles)){
    return;
  }
  foreach($handles as $handle){
    if(method_exists($handle, "close")){
      $handle->close();
    }
  }
  return;
}

在具體job實現(xiàn)類中的handle方法結(jié)尾添加:

public function handle()
{
  ...
  $this->releaseLoggerFile(); //釋放log文件
}

線上部署

創(chuàng)建任務(wù)shell

#!/bin/sh
day=$(date +'%y%m%d')
now=$(date +"%F %T")
php_command="/home/niuyufu/php/bin/php"
command="/home/niuyufu/webroot/snail_api/artisan"
log="/home/niuyufu/webroot/log/wave"
queue_name_arr=("snail:SendMessage" "snail:SendMessageToApp")
case $1 in
"run")
  for queue_name in ${queue_name_arr[*]}
  do
    count=$(ps aux | grep artisan |grep queue=${queue_name} | grep -v grep | wc -l)
    if [ ${count} -lt 1 ];then
      echo "${now}:${queue_name} process has exit ${count}\n";
      nohup $php_command $command queue:work --queue=${queue_name} --tries=3 --memory=512 --daemon >> $log/queueMonitor.log 2>1 
    else
      echo "${now}:${queue_name} process is runing";
    fi
  done
  ;;
"stop")
  kill -9 $(ps -ef | grep "queue:work" | grep -v grep | awk '{print $2}' | tr -s '\n' ' ')
  echo ${now}."Queue process all stop";
  ;;
"list")
  ps -ef | grep "queue:work" | grep -v grep
  ;;
*)
  echo "
Usage: QueueMonitorCommandShell.sh [run|stop|list]
  "
  ;;
esac

總結(jié):

laravel這邊的延遲隊列使用了三個隊列。

queue:default:delayed // 存儲延遲任務(wù)
queue:default // 存儲"生"任務(wù),就是未處理任務(wù)
queue:default:reserved // 存儲待處理任務(wù)
任務(wù)在三個隊列中進(jìn)行輪轉(zhuǎn),最后一定進(jìn)入到queue:default:reserved,并且成功后把任務(wù)從這個隊列中刪除。

laravel5.1 使用了watch來控制隊列的原子操作,但由于codis本身不支持 watch 方法。所以使用codis不能完全體驗隊列功能:延遲隊列不支持、不支持?jǐn)?shù)據(jù)重跑,對線上數(shù)據(jù)比較嚴(yán)格操作謹(jǐn)慎使用。

laravel5.3 之后redis隊列 開始使用lua腳本支持的隊列原子操作,它沒有使用 watch multi等操作,所以如果線上codis 支持lua的話,可以完整體驗到隊列功能。

參考文檔:

https://laravel-china.org/articles/4169/analysis-of-laravel-message-queue
http://laravelacademy.org/post/2012.html

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。

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

標(biāo)簽:白銀 廊坊 太原 辛集 綏化 鄂州 衡陽 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel框架隊列原理與用法分析》,本文關(guān)鍵詞  Laravel,框架,隊列,原理,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel框架隊列原理與用法分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Laravel框架隊列原理與用法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    911精品产国品一二三产区| 国产福利一区在线| 日本欧美一区二区三区乱码| 欧美视频中文字幕| 亚洲一二三四在线观看| 91在线观看成人| 18成人在线视频| 91国内精品野花午夜精品 | 欧美日韩国产欧美日美国产精品| 18欧美亚洲精品| 色吊一区二区三区| 婷婷夜色潮精品综合在线| 91精品综合久久久久久| 免费日韩伦理电影| 国产嫩草影院久久久久| 9久草视频在线视频精品| 亚洲欧美韩国综合色| 欧美日韩国产高清一区| 蜜臀av国产精品久久久久 | 欧美浪妇xxxx高跟鞋交| 喷水一区二区三区| 久久综合给合久久狠狠狠97色69| www.在线欧美| 午夜久久久久久| 精品电影一区二区三区| 成人精品视频一区| 日韩在线a电影| 国产精品福利一区二区三区| 4438x成人网最大色成网站| 久久99精品国产麻豆婷婷 | 国产精品88888| 一区二区三区中文字幕精品精品 | 久久精品日产第一区二区三区高清版| 波多野结衣中文一区| 日韩综合小视频| 国产精品久久久久影院亚瑟| 欧美一区二区视频观看视频| 91在线观看一区二区| 国产做a爰片久久毛片| 亚洲一区二区三区在线| 国产日产精品1区| 91精品国产乱码久久蜜臀| 97aⅴ精品视频一二三区| 国产一区视频在线看| 亚洲第一av色| 亚洲黄色小说网站| 欧美国产一区二区在线观看 | 欧美极品xxx| 欧美电影一区二区三区| 99精品在线观看视频| 国产精品一区二区三区乱码| 日韩在线观看一区二区| 亚洲人成网站影音先锋播放| 欧美激情在线看| 国产亚洲欧美色| 日韩精品影音先锋| 91精品国产一区二区| 欧美三级乱人伦电影| 色综合久久88色综合天天6| 丰满亚洲少妇av| 激情av综合网| 日本美女一区二区| 亚洲va国产天堂va久久en| 亚洲精品菠萝久久久久久久| 中文字幕亚洲精品在线观看| 中文字幕人成不卡一区| 欧美韩国日本一区| 国产精品二三区| 国产精品三级久久久久三级| 国产视频一区二区三区在线观看| 欧美v亚洲v综合ⅴ国产v| 久久这里只有精品6| 国产日韩精品一区二区浪潮av | 欧美日本高清视频在线观看| 一本色道久久加勒比精品 | 日韩视频在线一区二区| 91免费观看视频在线| 99久久久久免费精品国产| 成人av网在线| 99精品久久免费看蜜臀剧情介绍| 一本大道久久a久久精品综合| 欧美亚洲综合在线| 日韩欧美中文一区二区| 精品久久久久一区| 国产亚洲综合性久久久影院| 国产精品二三区| 亚洲成av人片在线| 久久精品国产99久久6| 丁香婷婷深情五月亚洲| 99久久综合国产精品| 欧美日韩国产大片| 国产蜜臀97一区二区三区| 岛国一区二区三区| 色香色香欲天天天影视综合网| 91免费国产在线观看| 在线播放中文一区| 久久久久久久精| 中文字幕在线免费不卡| 亚洲午夜私人影院| 国内精品久久久久影院薰衣草| eeuss鲁片一区二区三区在线观看| 在线视频国产一区| 精品国产sm最大网站| 亚洲三级在线播放| 久久精品国产精品亚洲红杏| 成人在线视频首页| 欧美精品久久99| 亚洲视频一区二区在线| 九九热在线视频观看这里只有精品| 99久久精品国产一区二区三区| 在线播放/欧美激情| 亚洲色图在线视频| 国内精品免费在线观看| 欧美日韩一区二区三区在线看 | 国产在线国偷精品产拍免费yy| 91蜜桃传媒精品久久久一区二区| 日韩一区二区在线播放| 亚洲精品日韩综合观看成人91| 国产一区二区精品久久99| 51午夜精品国产| 一区二区三区在线视频播放| 国产一区欧美二区| 欧美一区二区三区播放老司机| 亚洲欧美视频在线观看视频| 国产精品亚洲第一区在线暖暖韩国 | 蜜臀久久久99精品久久久久久| 成人激情文学综合网| 日韩久久久精品| 亚洲成人第一页| 色屁屁一区二区| 国产精品美女久久久久aⅴ国产馆| 麻豆国产欧美一区二区三区| 欧美性三三影院| 中文字幕亚洲区| 国产伦精一区二区三区| 欧美性受xxxx黑人xyx| 亚洲你懂的在线视频| 成人黄色av网站在线| 久久久久久97三级| 精彩视频一区二区三区| 欧美一级搡bbbb搡bbbb| 日韩和欧美的一区| 欧美高清hd18日本| 日韩精品一级二级| 日韩一级欧美一级| 日韩黄色片在线观看| 欧美一级片在线| 久久99精品视频| 久久亚洲欧美国产精品乐播| 黄页网站大全一区二区| 欧美精品一区二区在线播放| 另类小说图片综合网| 精品99久久久久久| 国产成人亚洲综合色影视| 中文字幕中文字幕在线一区| 色狠狠一区二区三区香蕉| 樱桃视频在线观看一区| 欧美丰满嫩嫩电影| 久久99久国产精品黄毛片色诱| 日韩女优电影在线观看| 国产精品1区2区| 亚洲少妇30p| 欧美在线看片a免费观看| 日韩高清国产一区在线| 久久先锋影音av鲁色资源| 成人黄动漫网站免费app| 亚洲影院免费观看| 日韩女优视频免费观看| 国产91清纯白嫩初高中在线观看| 国产精品高潮呻吟| 欧美揉bbbbb揉bbbbb| 激情图区综合网| 国产精品视频第一区| 色婷婷综合久久久久中文一区二区 | 日本一区二区成人在线| 日韩高清一区二区| 精品中文字幕一区二区| 国产精品一区二区果冻传媒| 色综合中文综合网| 国产午夜久久久久| 精品蜜桃在线看| 日韩视频国产视频| 亚洲第一福利视频在线| 1024精品合集| 国产一区欧美二区| 国产精品理伦片| 久久无码av三级| 欧美a级一区二区| 色综合久久六月婷婷中文字幕| 精品区一区二区| 久久精品国产澳门| 精品国产一区二区亚洲人成毛片| 久久久久久久精| 狠狠色综合播放一区二区| 91在线丨porny丨国产| 亚洲免费伊人电影| 欧美午夜一区二区三区免费大片| 色悠悠久久综合| 26uuu亚洲综合色欧美| 国产欧美一区二区在线观看|