Расписание Laravel, выполняемое до выполнения указанных условий

#laravel

#laravel

Вопрос:

У меня есть следующий код в Kernel.php . Цель состоит в том, чтобы запустить команду между 23:000 и 04:00

 $schedule->command('moving:vehicles -vvv')
            ->between('23:00', '04:00')
            ->everyTenMinutes();
  

Однако cron начинает выполнение команды в 17:00. Я попытался повторить то же самое, отправив электронные письма в mailtrap, и я получаю разные результаты.

Комментарии:

1. Может быть что-то, связанное с часовым поясом или временем на самом сервере. Посмотрите, как планировщик Laravel позволяет вам управлять часовым поясом здесь: laravel.com/docs/8.x/scheduling#timezones

2. Это не часовой пояс, config/app.php Я уже настроил часовой пояс. ‘часовой пояс’ => ‘Африка /Йоханнесбург’,

Ответ №1:

https://github.com/laravel/framework/issues/28943 Ссылка выше объясняет, почему расписание работало не так, как предполагалось. Это была ошибка в Laravel 5.x, и она была исправлена в версии 6. Я изменил направление использования https://crontab.guru/#*/10_0-4,23_*_* чтобы решить проблему, с которой я столкнулся.