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

主頁 > 知識庫 > Laravel使用Queue隊列的技巧匯總

Laravel使用Queue隊列的技巧匯總

熱門標(biāo)簽:廣州防封卡外呼系統(tǒng)多少錢一個月 江西手機(jī)自動外呼防封系統(tǒng)是什么 哪里辦理400電話 仁和怎么申請400開頭的電話 外呼系統(tǒng)撥打暫時無法接通 長春人工外呼系統(tǒng)服務(wù)商 廣東地市地圖標(biāo)注 高德地圖標(biāo)注家 怎么向銷售公司推銷外呼系統(tǒng)

前言

Laravel 隊列為不同的后臺隊列服務(wù)提供統(tǒng)一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于關(guān)系型數(shù)據(jù)庫的隊列。隊列的目的是將耗時的任務(wù)延時處理,比如發(fā)送郵件,從而大幅度縮短 Web 請求和相應(yīng)的時間。

隊列配置文件存放在 config/queue.php 。每一種隊列驅(qū)動的配置都可以在該文件中找到,包括數(shù)據(jù)庫,Beanstalkd ,Amazon SQS,Redis,以及同步(本地使用)驅(qū)動。其中還包含了一個 null 隊列驅(qū)動用于那些放棄隊列的任務(wù)

為什么使用隊列?

一般來說使用隊列是為了:

異步
重試

也許你還有其他的理由使用隊列,但是這應(yīng)該是最基本的兩個原因。

什么情況使用隊列?

了解了為什么使用隊列,那么一般有這么幾類任務(wù)使用隊列:

耗時比較久的,比如上傳一個文件后進(jìn)行一些格式的轉(zhuǎn)化等。

需要保證送達(dá)率的,比如發(fā)送短信,因為要調(diào)用別人的 api,總會有幾率失敗,那么為了保證送達(dá),重試就必不可少了。
使用隊列的時候一定要想明白一個問題,這個任務(wù)到底是不是可以異步,如果因為異步會導(dǎo)致問題,那么就要放棄使用隊列。

驅(qū)動的必要設(shè)置

database.php

在 database.php 配置文件中對 redis 數(shù)據(jù)庫部分進(jìn)行配置,默認(rèn)有一個 default 連接,就用這個好了:)
根據(jù)這個默認(rèn)連接中需要的配置項,編輯 .env 配置文件,將其中的 REDIS_HOST、REDIS_PASSWORD、REDIS_PORT 填寫成自己服務(wù)器中 Redis 的相應(yīng)值。

queue.php

首先需要去 .env 中配置 QUEUE_DRIVER,因為現(xiàn)在打算用 Redis,所以配置成 redis。

接著配置 queue.php 里 connections 部分的 redis 連接,其中 connection 對應(yīng)的值就是 database.php 中 redis 的那個 default 連接。

數(shù)據(jù)庫

要使用 database 這個隊列驅(qū)動的話,你需要創(chuàng)建一個數(shù)據(jù)表來存儲任務(wù)。你可以用 queue:table 這個 Artisan

php artisan queue:table

處理失敗的任務(wù)

有時候你隊列中的任務(wù)會失敗。不要擔(dān)心,本來事情就不會一帆風(fēng)順。

Laravel 內(nèi)置了一個方便的方式來指定任務(wù)重試的最大次數(shù)。當(dāng)任務(wù)超出這個重試次數(shù)后,它就會被插入到 failed_jobs 數(shù)據(jù)表里面。要創(chuàng)建 failed_jobs 表的遷移文件,你可以用 queue:failed-table 命令,接著使用 migrate Artisan 命令生成 failed_jobs 表:

php artisan queue:failed-table

命令來創(chuàng)建這個數(shù)據(jù)表的遷移。當(dāng)遷移創(chuàng)建好以后,就可以用 migrate 這條命令來創(chuàng)建數(shù)據(jù)表:

php artisan migrate

執(zhí)行命令講解

php artisan queue:work --daemon --quiet --queue=default --delay=3 --sleep=3 --tries=3
--daemon

The queue:work Artisan command includes a --daemon option for forcing the queue worker to continue processing jobs without ever re-booting the framework. This results in a significant reduction of CPU usage when compared to the queue:listen command

總體來說,在 supervisor 中一般要加這個 option,可以節(jié)省 CPU 使用。

--quiet

不輸出任何內(nèi)容

--delay=3

一個任務(wù)失敗后,延遲多長時間后再重試,單位是秒。這個值的設(shè)定我個人建議不要太短,因為一個任務(wù)失敗(比如網(wǎng)絡(luò)原因),重試時間太短可能會出現(xiàn)連續(xù)失敗的情況。

--sleep=3

去 Redis 中拿任務(wù)的時候,發(fā)現(xiàn)沒有任務(wù),休息多長時間,單位是秒。這個值的設(shè)定要看你的任務(wù)是否緊急,如果是那種非常緊急的任務(wù),不能等待太長時間。

--tries=3

定義失敗任務(wù)最多重試次數(shù)。這個值的設(shè)定根據(jù)任務(wù)的重要程度來確定,一般 3 次比較適合。

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

生成任務(wù)類

在你的應(yīng)用程序中,隊列的任務(wù)類都默認(rèn)放在 app/Jobs 目錄下。如果這個目錄不存在,那當(dāng)你運(yùn)行 make:job Artisan 命令時目錄就會被自動創(chuàng)建。你可以用以下的 Artisan 命令來生成一個新的隊列任務(wù):

php artisan make:job Demo

生成的類實現(xiàn)了 Illuminate\Contracts\Queue\ShouldQueue 接口,這意味著這個任務(wù)將會被推送到隊列中,而不是同步執(zhí)行。

?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;

class Demo implements ShouldQueue
{
 use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

 public $param;
 /**
 * Create a new job instance.
 *
 * @return void
 */
 public function __construct($param = '')
 {
 $this->param = $param;
 }

 /**
 * Execute the job.
 *
 * @return void
 */
 public function handle()
 {
 Log::info('Hello, '.$this->param);
 }
}

控制器代碼

public function queue_demo()
{
 $num = rand(1,999999999);
 // 這個任務(wù)將被分發(fā)到默認(rèn)隊列...
 DemoJob::dispatch($num);
}

開啟隊列

php artisan queue:work --queue=default

由于是本地,需要打開監(jiān)聽,當(dāng)訪問到接口時,就會觸發(fā)隊列中的任務(wù)

線上的話需要用到supervisor的配置

Supervisor 配置

安裝 Supervisor

Supervisor 是一個 Linux 操作系統(tǒng)上的進(jìn)程監(jiān)控軟件,它會在 queue:listen 或 queue:work 命令發(fā)生失敗后自動重啟它們。在 Ubuntu 安裝 Supervisor,可以用以下命令:

sudo apt-get install supervisor

{tip} 如果自己手動配置 Supervisor 聽起來有點(diǎn)難以應(yīng)付,可以考慮使用 Laravel Forge,它能給你的 Laravel 項目自動安裝與配置 Supervisor。

配置 Supervisor

Supervisor 的配置文件一般是放在 /etc/supervisor/conf.d 目錄下。在這個目錄中你可以創(chuàng)建任意數(shù)量的配置文件來要求 Supervisor 怎樣監(jiān)控你的進(jìn)程。例如我們創(chuàng)建一個 laravel-worker.conf 來啟動與監(jiān)控一個 queue:work 進(jìn)程:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app.com/worker.log

這個例子里的 numprocs 命令會要求 Supervisor 運(yùn)行并監(jiān)控 8 個 queue:work 進(jìn)程,并且在它們運(yùn)行失敗后重新啟動。當(dāng)然,你必須更改 command 命令的 queue:work sqs ,以顯示你所選擇的隊列驅(qū)動。

啟動 Supervisor 當(dāng)這個配置文件被創(chuàng)建后,你需要更新 Supervisor 的配置,并用以下命令來啟動該進(jìn)程:

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start laravel-worker:*

更多有關(guān) Supervisor 的設(shè)置與使用,請參考 Supervisor 官方文檔

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • laravel5.6 框架郵件隊列database驅(qū)動簡單demo示例
  • Docker部署Laravel應(yīng)用實現(xiàn)隊列&任務(wù)調(diào)度
  • Laravel 6 將新增為指定隊列任務(wù)設(shè)置中間件的功能
  • Laravel 隊列使用的實現(xiàn)
  • Laravel框架隊列原理與用法分析
  • 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使用Queue隊列的技巧匯總》,本文關(guān)鍵詞  Laravel,使用,Queue,隊列,的,;如發(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使用Queue隊列的技巧匯總》相關(guān)的同類信息!
  • 本頁收集關(guān)于Laravel使用Queue隊列的技巧匯總的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美一区二区大片| 99热99精品| 欧美日韩视频在线一区二区| 99re视频这里只有精品| caoporen国产精品视频| 91黄色免费观看| 久久久久一区二区三区四区| 亚洲人成在线观看一区二区| 午夜国产精品一区| 99re在线视频这里只有精品| 欧美日本一区二区三区| 日本一区免费视频| 国产乱码精品1区2区3区| 在线观看91精品国产入口| 欧美精品一区二区不卡| 亚洲自拍欧美精品| 欧美群妇大交群中文字幕| 亚洲欧洲成人av每日更新| 国产成人精品影院| 国产精品久久久久久久久果冻传媒| 日韩va欧美va亚洲va久久| 波多野结衣亚洲一区| 精品欧美乱码久久久久久1区2区 | 555夜色666亚洲国产免| 香蕉加勒比综合久久| 欧美私模裸体表演在线观看| 久久久久久综合| 99riav久久精品riav| 亚洲国产视频网站| 91亚洲国产成人精品一区二区三| 一区二区国产盗摄色噜噜| 一本色道亚洲精品aⅴ| 亚洲免费电影在线| 精品美女在线观看| 色婷婷综合在线| 日韩中文字幕不卡| 日韩欧美成人激情| aa级大片欧美| 全国精品久久少妇| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品久久久久影院老司| 99视频精品在线| 亚洲高清免费观看| 久久精品夜色噜噜亚洲a∨| 色999日韩国产欧美一区二区| 日韩中文欧美在线| 国产精品毛片久久久久久| 91精品国产综合久久香蕉麻豆| 风流少妇一区二区| 精品亚洲成a人| 一区二区三区免费网站| 自拍偷在线精品自拍偷无码专区 | 亚洲天堂av老司机| 亚洲日本在线观看| 国产日韩精品一区二区浪潮av| 欧美日韩成人综合天天影院 | 国产日韩av一区二区| 国产精品入口麻豆九色| 国产女主播一区| 欧美国产精品中文字幕| 伊人色综合久久天天| 久久精品亚洲一区二区三区浴池 | 午夜一区二区三区视频| 伊人色综合久久天天| 亚洲在线观看免费视频| 久久99蜜桃精品| 色综合天天综合网国产成人综合天 | 五月天激情综合网| 免费一级欧美片在线观看| 国内精品视频666| 91啪在线观看| 久久久久久久电影| 日韩黄色免费电影| 国产综合成人久久大片91| 国产乱国产乱300精品| 色噜噜狠狠成人网p站| 欧美一区二区性放荡片| 国产精品理伦片| 精品亚洲aⅴ乱码一区二区三区| 99免费精品视频| 久久久影院官网| 日韩和欧美一区二区| 国产99久久久国产精品潘金网站| 欧美主播一区二区三区美女| 精品国产乱码久久| 天天操天天综合网| 欧美在线你懂得| 亚洲精品免费视频| 成人伦理片在线| 日本一区二区免费在线| 国内精品国产三级国产a久久 | 国产天堂亚洲国产碰碰| 久色婷婷小香蕉久久| 色综合久久综合中文综合网| 美女在线观看视频一区二区| 亚洲视频狠狠干| 国产精品五月天| 国产喂奶挤奶一区二区三区| 91精品国产综合久久久蜜臀图片| 91美女在线视频| 色av成人天堂桃色av| eeuss鲁片一区二区三区在线看| 国产乱码精品1区2区3区| 麻豆freexxxx性91精品| 亚洲国产成人高清精品| 亚洲国产精品一区二区www| 亚洲欧洲无码一区二区三区| 久久久午夜精品| 国产午夜精品一区二区| 欧美一卡在线观看| 日韩精品一区二区三区在线| 亚洲人成影院在线观看| 日本高清不卡aⅴ免费网站| 日韩—二三区免费观看av| 中文字幕一区二区日韩精品绯色| 色综合色综合色综合色综合色综合 | 日韩成人免费看| 亚洲欧洲99久久| 久久免费视频一区| 久久影院电视剧免费观看| 欧美日韩不卡一区二区| 99久久国产综合精品麻豆| 国产精品白丝jk黑袜喷水| 亚洲自拍偷拍欧美| 亚洲成人动漫av| 亚洲第一电影网| 亚洲国产美女搞黄色| 中文字幕永久在线不卡| 国产亚洲欧美在线| 欧美v国产在线一区二区三区| 欧美一区二区三区视频免费播放| 色综合天天天天做夜夜夜夜做| 国产美女精品在线| 岛国一区二区在线观看| 国产成人av资源| 成人一二三区视频| 国产精品白丝jk黑袜喷水| 91丨porny丨首页| 91污在线观看| 日韩欧美一二区| 国产精品久久久久三级| 尤物在线观看一区| 日本不卡一二三区黄网| 奇米四色…亚洲| 国产91丝袜在线播放0| 99久久精品情趣| 91精品在线观看入口| 日本一区二区三区免费乱视频| 亚洲免费大片在线观看| 九一久久久久久| 91麻豆.com| 久久先锋影音av| 亚洲va欧美va人人爽午夜| 成人免费福利片| 久久久精品免费观看| 亚洲午夜久久久久中文字幕久| 一区二区三区四区中文字幕| 国产精品88av| 欧美一区国产二区| 亚洲一区二区视频| 成人免费高清在线观看| 久久综合av免费| 奇米精品一区二区三区在线观看 | 亚洲成av人**亚洲成av**| 国产成人综合亚洲91猫咪| 日韩一区二区三区四区 | 91国偷自产一区二区三区成为亚洲经典 | 欧美在线观看18| 成人欧美一区二区三区黑人麻豆| 国产精品69毛片高清亚洲| 欧美老年两性高潮| 美日韩一级片在线观看| 久久久亚洲高清| 色综合久久久久综合体桃花网| 成人欧美一区二区三区1314| 色悠悠亚洲一区二区| 一区二区三区四区在线免费观看| 色婷婷国产精品久久包臀| 亚洲一二三区不卡| 69精品人人人人| 成人免费毛片高清视频| 一区二区三区自拍| 欧美成人性战久久| 国产精品乡下勾搭老头1| 亚洲精品老司机| 国产精品网站导航| 在线91免费看| 风流少妇一区二区| 韩日欧美一区二区三区| 久久九九影视网| 中文在线免费一区三区高中清不卡| 欧美国产精品中文字幕| 国产亚洲精品精华液| 亚洲一区二区在线观看视频| 午夜伊人狠狠久久| 成人免费看片app下载| 91精品国产免费| 亚洲少妇中出一区| 国产剧情在线观看一区二区| 欧美色图在线观看|