Laravel 8 最大異常數(shù)

2021-07-19 11:02 更新

有時,你可能希望指定某個任務(wù)可嘗試很多次,但如果重試次數(shù)超過了給定數(shù)量,觸發(fā)了異常,則該任務(wù)應(yīng)該失敗。為了實現(xiàn)這一點,你可以在你的任務(wù)類中定義一個 maxExceptions 屬性:

<?php

namespace App\Jobs;

class ProcessPodcast implements ShouldQueue
{
    /**
     * 任務(wù)可嘗試的次數(shù)
     *
     * @var int
     */
    public $tries = 25;

    /**
     * 任務(wù)失敗前允許的最大異常數(shù)
     *
     * @var int
     */
    public $maxExceptions = 3;

    /**
     * 執(zhí)行任務(wù)
     *
     * @return void
     */
    public function handle()
    {
        Redis::throttle('key')->allow(10)->every(60)->then(function () {
            // 獲得鎖,處理podcast...
        }, function () {
            // 無法獲得鎖...
            return $this->release(10);
        });
    }
} 

在此示例中,如果應(yīng)用程序無法獲得 Redis 鎖,則任務(wù)將釋放十秒鐘,并將繼續(xù)重試 25 次。但是,如果任務(wù)拋出三個未處理的異常,則該任務(wù)將失敗。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號