Расписание задач Laravel с колонкой cron в базе данных - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть модель "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();

Может кто-нибудь подсказать, почему это не работает или как заставить его работать

1 Ответ

0 голосов
/ 04 ноября 2019

Однако вызов модели из ядра напрямую вызывает другие проблемы. Например, миграция базы данных теперь не работает, и выдается сообщение об ошибке при кэшировании маршрутов или выполнении маршрута: список. В общем, это, похоже, не нравится!

Кажется, что есть некоторые синтаксические ошибки (возможно, некоторые классы не перечислены в использовании?)

Вы проверили laravel и PHPжурналы? Скорее всего, будут некоторые объяснения.

...