Laravel 8 避免任務(wù)重復(fù)

2021-07-19 11:07 更新

默認(rèn)情況下,即使之前的任務(wù)實(shí)例還在執(zhí)行,調(diào)度內(nèi)的任務(wù)也會(huì)執(zhí)行。為避免這種情況的發(fā)生,你可以使用 withoutOverlapping 方法:

$schedule->command('emails:send')->withoutOverlapping(); 

在此例中,若 emails:send Artisan 命令 還未運(yùn)行,那它將會(huì)每分鐘執(zhí)行一次。當(dāng)你的任務(wù)執(zhí)行時(shí)間非常不確定,導(dǎo)致你無法準(zhǔn)確預(yù)測(cè)任務(wù)的執(zhí)行時(shí)間,那 withoutOverlapping 方法會(huì)特別有用。

如有需要,你可以在「without overlapping」鎖過期之前,指定它的過期時(shí)間。默認(rèn)情況下,這個(gè)鎖會(huì)在 24 小時(shí)后過期。

$schedule->command('emails:send')->withoutOverlapping(10); 


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)