2016-02-03 58 views
1

引用https://laravel.com/docs/5.1/scheduling#preventing-task-overlaps每五分鐘運行一次任務而不重疊?

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

在這個例子中,如果它尚未運行emails:send工匠命令將運行每 分鐘。

如果我想讓任務每五分鐘運行一次,該怎麼辦?我可以這樣做嗎?:

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

我很肯定你可以,還沒有測試過它。也許運行一些簡單的測試? – Fester

回答

1

是的,你可以這樣做。 command返回Event的一個實例,Event的底層代碼具有流暢的界面,允許您以這種方式將這些界面鏈接起來。

如果您查看withoutOverlapping方法,您可以自己查看。

/** 
* Do not allow the event to overlap each other. 
* 
* @return $this 
*/ 
public function withoutOverlapping() 
{ 
    $this->withoutOverlapping = true; 
    return $this->skip(function() { 
     return file_exists($this->mutexPath()); 
    }); 
} 
相關問題