2016-02-03 1 views
1

Цитирование https://laravel.com/docs/5.1/scheduling#preventing-task-overlaps,работает задача каждые пять минут без перекрытия?

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

В этом примере команда Artisan emails:send будет запускаться каждый минуту, если он еще не запущен.

Что делать, если я хотел, чтобы задача выполнялась каждые пять минут? Могу ли я это сделать ?:

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

Я уверен, что вы можете, еще не протестировали его. Может быть, попробуйте простую проверку? – Fester

ответ

1

Да, вы можете это сделать. command возвращает экземпляр события, базовый код для 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()); 
    }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^