Laravel 8 任務(wù)失敗后的清理工作

2021-07-06 13:36 更新

你可以直接在 job 類上定義一個(gè) failed 方法,它允許你在發(fā)生故障時(shí)執(zhí)行特定于任務(wù)的清理。這是向用戶發(fā)送警報(bào)或還原任務(wù)執(zhí)行的任何操作的最佳位置。導(dǎo)致作業(yè)失敗的 Throwable 將被傳遞給 failed 方法:

<?php

namespace App\Jobs;

use App\Models\Podcast;
use App\Services\AudioProcessor;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Throwable;

class ProcessPodcast implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;

    protected $podcast;

    /**
     * 創(chuàng)建一個(gè)新的任務(wù)實(shí)例
     *
     * @param  \App\Models\Podcast  $podcast
     * @return void
     */
    public function __construct(Podcast $podcast)
    {
        $this->podcast = $podcast;
    }

    /**
     * 執(zhí)行任務(wù)
     *
     * @param  \App\Services\AudioProcessor  $processor
     * @return void
     */
    public function handle(AudioProcessor $processor)
    {
        // 處理上傳的 podcast...
    }

    /**
     * 任務(wù)未能處理
     *
     * @param  \Throwable  $exception
     * @return void
     */
    public function failed(Throwable $exception)
    {
        // 給用戶發(fā)送失敗通知, 等等...
    }
} 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)