我有一個每次調用函數的計劃作業。這個函數做了很多事情,可能會拋出異常或給我一個錯誤。Laravel取得日程安排作業
這是在一個循環中完成的,所以如果發生錯誤,該函數將停止工作並被刪除,直到我刪除導致錯誤的條目(或修復錯誤)。
事情是這樣的:
public function process_documents()
{
$documents = document::where("processed", 0)->get();
foreach($documents as $document)
{
$this->do_this($document);
$this->do_that($document);
$this->finish($document);
}
}
的解決方案,我雖然:
1-做一個執行命令的命令。
foreach($documents as $document)
{
Artisan::call("document:process",$document->id);
}
2-嘗試捕捉無處不
我知道他們都將工作,但我想知道是否有另一種方式。
當然,我每次都會修復它,但我不想在上午04:00保姆生產,因爲意外墜毀了。特別是當我不是項目中的onyl工作人員時。 – prgrm
這是個好建議。儘管我認爲'try/catch'塊有其目的和地點。 @prgrm也提到這個功能做了很多。研究問題的分離,並將其分解爲更小,更易於管理的功能。 – fubar
我同意一個嘗試/抓住每個文件找到問題就沒問題。但正如我所理解的那樣,他希望增加對每一個功能的嘗試。 – Jerodev