В Laravel в моем ядре у меня есть:
protected $commands = [
Commands\SendRenewEmails::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->command('renew:emails')
->daily();
}
Указанная функция renew:emails
работает как задумано, если я запускаю ее вручную через Artisan.
И в мой crontab у меня:
* */8 * * * cd /path-to-my-project && php artisan schedule:run >> /dev/null 2>&1
У меня это должно запускаться каждый 8-й час, а не каждую минуту в * * * * *
, так как это живо для тестирования и просто для того, чтобы задача не запускалась каждую минуту .
Итак, как Laravel знает, когда запускать ежедневное задание на ядре и когда это происходит?
Из этой настройки (которая, кажется, быть базовой c настройкой для cronjobs в Laravel, но запускаться каждую минуту вместо каждого 8-го часа), нет журналов (которые я вижу) и таблицы в БД, чтобы отслеживать это.
Итак, если я установил для своего cron значение * * * * *
, как Laravel знает не , чтобы запускать запланированное задание каждую минуту, просто потому, что я поставил ->daily();
в конце задание?
А когда у меня daily();
, в какое конкретно c время это? И в спецификациях c сколько времени hourly();
?
TL; DR: Как Laravel знает, что нельзя запускать те же задания снова, если он не предполагается, например, с правилом daily();
? Где хранится эта информация? Как я могу быть уверен, что задание с правилом daily();
не будет запускаться каждую минуту, если мои cronjobs std:out
s php artisan schedule:run
каждую минуту?