Фон
У меня есть проект laravel, который работает нормально уже несколько недель и выполняет запланированное задание каждые 5 минут без проблем. Я вижу, как эта работа выполняется в Horizon, и если я использую php artisan queue:work --tries=3
, я также вижу, как она выполняется. К вашему сведению - я использую Redis для драйвера очереди.
Рабочий Kernel.php
namespace App\Console;
use Artisan;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Jobs\FetchMajorProblems;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
'App\Console\Commands\MassAssignRole',
'App\Console\Commands\ClearLogs',
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('horizon:snapshot')->everyFiveMinutes();
$schedule->job(new FetchMajorProblems)->everyFiveMinutes();
}
/**
* Register the Closure based commands for the application.
*
* @return void
*/
protected function commands()
{
require base_path('routes/console.php');
}
}
Выпуск
Теперь я создал новую работу точно так же, как и для FetchMajorProblems
. Я также добавил это в файл Kernel.php с помощью следующих 2 изменений:
- Добавлено
use App\Jobs\FetchMajorIncidents;
в начало.
- Добавлено
$schedule->job(new FetchMajorIncidents)->everyFiveMinutes();
к функции расписания.
Однако новое задание FetchMajorIncidents
не вызывается.
Что я пробовал
Я пробовал следующее:
- Перезапущенный горизонт
- Перезапустил сервер
- Очистил кэш php
- Очистил конфиг php
- Очищены просмотры php
- Запуск автозагрузки Composer
В качестве теста я также пытался удалить текущее задание, комментируя $schedule->job(new FetchMajorProblems)->everyFiveMinutes();
. Проблема в том, что, хотя это закомментировано, задание все еще выполняется каждые 5 минут!
Я не могу придумать ничего другого, чтобы проверить, где могут кэшироваться задания.