У меня есть модель "reportSchedule", которая содержит имя отчета и столбец cron_request
, например */15 * * * *
.
. Я хочу иметь возможность настроить cron в базе данных и влиять на время, котороеотчет запрашивается. Например, следующее работает непосредственно из консоли / Kernel.php:
ReportSchedule::all()->each(function(ReportSchedule $reportSchedule) use($schedule){
if(isset($reportSchedule->cron_request)){
$schedule->call(function() use ($reportSchedule) {
ReportRequestNow::dispatch($reportSchedule);
})->cron($reportSchedule->cron_request);
}
});
Однако, при вызове модели непосредственно из ядра возникают другие проблемы. Например, миграция базы данных теперь не работает, и выдается сообщение об ошибке при кэшировании маршрутов или выполнении маршрута: список. В общем, это, похоже, не нравится!
Так что моя идея заключалась в том, чтобы либо создать задание сеялки, либо поместить его в свой собственный график, однако ни одна из них не работает.
// Не работает -каждую минуту вызывается schuedle, но ReportRequestNow никогда не достигается.
$schedule->call(function() use($schedule){
ReportSchedule::all()->each(function(ReportSchedule $reportSchedule) use($schedule){
if(isset($reportSchedule->cron_request)){
$schedule->call(function() use ($reportSchedule) {
ReportRequestNow::dispatch($reportSchedule);
})->cron($reportSchedule->cron_request);
}
});
})->everyMinute();
// Также не работает
$schedule->job(new ReportScheduleSeeder(), 'high')->everyMinute();
Может кто-нибудь подсказать, почему это не работает или как заставить его работать