WithoutOverlapping () не работает в расписании Laravel

$schedule->call(function ()
{
error_log("Line Schedule 1:Start");
//Send Email
error_log("Line Schedule 1:End");

})->everyFiveMinutes()->name('event_name:1')->withoutOverlapping();$schedule->call(function ()
{
error_log("Line Schedule 2:Start");
//Send Email
error_log("Line Schedule 2:End");
})->everyFiveMinutes()->name('event_name:2')->withoutOverlapping();
$schedule->call(function ()
{
error_log("Line Schedule 3:Start");
//Send Email
error_log("Line Schedule 3:End");
})->everyFiveMinutes()->name('event_name:3')->withoutOverlapping();

я запускаю эти шульдеры с помощью команды php artisan schedule: запускаю и запускаю много экземпляров параллельно. и мой файл журнала говорит, что schulder 2 запускается во второй раз, даже если его предыдущий экземпляр еще не завершил его.

[01-Jan-2016 11:30:08 UTC] Line Schedule 1:Start
[01-Jan-2016 11:30:11 UTC] Line Schedule 2:Start
[01-Jan-2016 11:30:13 UTC] Line Schedule 3:Start
[01-Jan-2016 11:30:15 UTC] Line Schedule 1:End
[01-Jan-2016 11:30:15 UTC] Line Schedule 2:Start
[01-Jan-2016 11:30:17 UTC] Line Schedule 2:End
[01-Jan-2016 11:30:17 UTC] Line Schedule 3:Start
[01-Jan-2016 11:30:19 UTC] Line Schedule 3:End
[01-Jan-2016 11:30:21 UTC] Line Schedule 2:End
[01-Jan-2016 11:30:21 UTC] Line Schedule 3:Start
[01-Jan-2016 11:30:22 UTC] Line Schedule 3:End
[01-Jan-2016 11:30:25 UTC] Line Schedule 3:End

5

Решение

Просто назовите вашу задачу с вызовом название() и цепочка методов, которые определяют, когда ваша задача должна быть запущена.

$schedule->call(function () {
//Some Code
})->everyFiveMinutes()
->name('some_name')
->withoutOverlapping();

Для анонимных функций имя необходимо для предотвращения наложения.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]