已失敗的工作

2018-02-24 15:52 更新

事情往往不會如你預(yù)期的一樣,有時(shí)候你推送工作到隊(duì)列會失敗,別擔(dān)心,Laravel 包含一個(gè)簡單的方法去指定一個(gè)工作最多可以被執(zhí)行幾次,在工作被執(zhí)行到一定的次數(shù)時(shí),他將會添加至 failed_jobs 數(shù)據(jù)表里,然后失敗工作的數(shù)據(jù)表名稱可以在 config/queue.php 里進(jìn)行設(shè)置:

要產(chǎn)生一個(gè)遷移來建立 failed_jobs 數(shù)據(jù)表,你可以使用
queue:failed-table Artisan 命令:

php artisan queue:failed-table

你可以指定一個(gè)最大值來限制一個(gè)工作應(yīng)該最多被執(zhí)行幾次,在你執(zhí)行 queue:listen 時(shí)加上 --tries

php artisan queue:listen connection-name --tries=3

假如你會想注冊一個(gè)事件,這個(gè)事件會將會在隊(duì)列失敗時(shí)被調(diào)用,你可以使用 Queue::failing 方法,這個(gè)事件是一個(gè)很好的機(jī)會讓你可以通知你的團(tuán)隊(duì)通過 e-mailHipChat。

Queue::failing(function($connection, $job, $data)
{
    //
});

你可能夠直接在隊(duì)列工作類別中定義一個(gè) failed 方法,這讓你能夠在工作失敗時(shí)候,執(zhí)行一些特定的動(dòng)作:

public function failed()
{
    // 當(dāng)工作失敗的時(shí)候會被調(diào)用……
}

重新嘗試失敗的工作

要看到所有失敗的工作,你可以使用 queue:failed 命令:

php artisan queue:failed

這個(gè) queue:failed 命令將會列出工作 ID、連接、隊(duì)列名稱及失敗的時(shí)間,可以使用工作 ID 重新執(zhí)行一個(gè)失敗的工作,例如一個(gè)已經(jīng)失敗的工作的 ID 是 5,我們可以使用下面的命令:

php artisan queue:retry 5

假如你想刪除一個(gè)失敗的工作,可以使用 queue:forget 命令:

php artisan queue:forget 5

要?jiǎng)h除全部失敗的工作,可以使用 queue:flush 命令:

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號