女人久久久,最近更新中文字幕在线,成人国内精品久久久久影院vr,中文字幕亚洲综合久久综合,久久精品秘?一区二区三区美小说

原創(chuàng)生活

國內(nèi) 商業(yè) 滾動

基金 金融 股票

期貨金融

科技 行業(yè) 房產(chǎn)

銀行 公司 消費

生活滾動

保險 海外 觀察

財經(jīng) 生活 期貨

當前位置:國內(nèi) >

視訊!PHP-web框架Laravel-隊列(三)

文章來源:騰訊云  發(fā)布時間: 2023-05-02 21:22:51  責任編輯:cfenews.com
+|-

并發(fā)處理

Laravel的隊列系統(tǒng)默認是串行處理作業(yè)的,這意味著每個作業(yè)都要等待前一個作業(yè)處理完畢后才能開始處理。但是,有時候我們需要同時處理多個作業(yè),這就需要并發(fā)處理。

Laravel通過將隊列連接設置為"redis","database"或"beanstalkd"來實現(xiàn)并發(fā)處理。這些連接可以處理多個并發(fā)作業(yè)。

作業(yè)優(yōu)先級

Laravel隊列系統(tǒng)還支持作業(yè)優(yōu)先級,這意味著我們可以為不同類型的作業(yè)分配不同的優(yōu)先級。優(yōu)先級高的作業(yè)將在優(yōu)先級低的作業(yè)之前處理。優(yōu)先級默認為0,值越高表示優(yōu)先級越高。


(相關資料圖)

我們可以使用--queue選項在調(diào)度作業(yè)時指定作業(yè)隊列。例如,我們可以使用以下代碼將作業(yè)推送到"high"隊列:

ProcessPodcast::dispatch($podcast)->onQueue("high");

然后,我們可以使用以下命令啟動一個專用的隊列進程來處理高優(yōu)先級隊列:

php artisan queue:work --queue=high

作業(yè)超時

如果一個作業(yè)執(zhí)行時間過長,可能會導致隊列堵塞,這就需要設置作業(yè)的超時時間。Laravel默認的作業(yè)超時時間為60秒。

我們可以在定義作業(yè)類時使用--timeout選項來設置超時時間。例如,以下代碼設置超時時間為120秒:

php artisan make:job ProcessPodcast --timeout=120

如果作業(yè)在超時時間內(nèi)沒有處理完成,Laravel將嘗試終止該作業(yè)并將其標記為失敗。

重試作業(yè)

Laravel隊列系統(tǒng)默認會自動重試作業(yè),如果一個作業(yè)失敗了,它將被重新推送到隊列中,直到達到最大嘗試次數(shù)。最大嘗試次數(shù)默認為3,可以在config/queue.php中進行配置。

如果要禁用作業(yè)重試,我們可以在定義作業(yè)類時使用--tries選項將最大嘗試次數(shù)設置為0:

php artisan make:job ProcessPodcast --tries=0

作業(yè)失敗

如果一個作業(yè)達到最大嘗試次數(shù)仍然失敗,它將被標記為失敗。Laravel默認會將失敗的作業(yè)寫入日志文件。我們還可以在config/queue.php中配置將失敗的作業(yè)發(fā)送到其他通知渠道,例如電子郵件或Slack。

當然,我們還可以通過手動調(diào)用fail方法來標記一個作業(yè)為失?。?/p>

/** * Execute the job. * * @return void */public function handle(){    if ($this->somethingWentWrong()) {        $this->fail(new Exception("Something went wrong."));    }    // Process the podcast...}

關鍵詞:

專題首頁|財金網(wǎng)首頁

投資
探索

精彩
互動

獨家
觀察

京ICP備2021034106號-38   營業(yè)執(zhí)照公示信息  聯(lián)系我們:55 16 53 8 @qq.com  財金網(wǎng)  版權所有  cfenews.com