1 回答
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
重試作業(yè)不是一個(gè)壞主意,它只是內(nèi)置于作業(yè)設(shè)計(jì)中。Laravel對(duì)此事進(jìn)行了重試,即工作可以執(zhí)行不可靠的操作。
作為我一直在處理的項(xiàng)目中的一個(gè)例子,我們正在使用的外部API每發(fā)送100個(gè)請(qǐng)求就有1-5個(gè)http 500個(gè)錯(cuò)誤。這是由 的內(nèi)置重試功能處理的。Laravel
從5.4開(kāi)始,您可以在類(lèi)中設(shè)置它。這將完全按照您的要求執(zhí)行操作,而無(wú)需定義邏輯。最后,為了達(dá)到重試限制,您可以定義一個(gè)名為retryAfter()的函數(shù),該函數(shù)指定何時(shí)應(yīng)重試作業(yè)。Laravel
class FacebookData {
public $tries = 5;
public function retryAfter() {
//wait 6 minutes
return 360;
}
}
如果你想保持你的邏輯,你只重試429錯(cuò)誤,我會(huì)使用相反的方法來(lái)刪除作業(yè),如果它不是429。
if ($res['code'] !== 429) {
$this->delete();
}
- 1 回答
- 0 關(guān)注
- 119 瀏覽
添加回答
舉報(bào)
