РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1291 of 1392 menu

Команда schedule:run

Команда schedule:run является основным инструментом для выполнения задач, запланированных через планировщик Laravel. Она анализирует все задачи, определённые в классе App\Console\Kernel в методе schedule, определяет, какие из них должны быть запущены в текущий момент, и выполняет их. Обычно эта команда добавляется в системный cron для выполнения каждую минуту, чтобы обеспечивать своевременный запуск всех запланированных задач.

Синтаксис

php artisan schedule:run

Команда не принимает аргументов. При её вызове планировщик проверяет все зарегистрированные задачи и выполняет те, у которых время совпадает с текущим.

Пример

Давайте определим несколько задач в планировщике и запустим их с помощью schedule:run.

В файле планировщика добавим простую команду, которая записывает сообщение в лог каждую минуту, а также ежеминутную замыкающую функцию:

<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Support\Facades\Log; class Kernel extends ConsoleKernel { protected function schedule(Schedule $schedule) { $schedule->command('inspire')->everyMinute(); $schedule->call(function () { Log::info('Задача выполняется каждую минуту'); })->everyMinute(); } } ?>

Теперь запустим планировщик с помощью команды schedule:run⁅/⁆:

php artisan schedule:run

Результат выполнения команды:

"Running scheduled task: 'Inspire'..." "Running scheduled task: Closure..."

Пример

Теперь давайте создадим собственную консольную команду и запланируем её выполнение раз в час:

<?php namespace App\Console\Commands; use Illuminate\Console\Command; class ProcessReports extends Command { protected $signature = 'reports:process'; protected $description = 'Process daily reports'; public function handle() { $this->info('Processing reports...'); // Здесь обычно находится логика обработки отчётов $this->info('Reports processed successfully.'); return 0; } } ?>

Добавим эту команду в планировщик для выполнения каждый час:

<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { protected function schedule(Schedule $schedule) { $schedule->command('reports:process')->hourly(); } } ?>

При запуске в указанный час планировщик выполнит нашу команду:

php artisan schedule:run

Результат выполнения команды:

"Running scheduled task: 'reports:process'..." "Processing reports..." "Reports processed successfully."

Смотрите также

  • команда schedule:work,
    которая запускает планировщик как демон для непрерывной работы
  • команда schedule:list,
    которая показывает список всех запланированных задач
  • класс Schedule,
    который предоставляет API для определения задач в планировщике
  • метод command,
    который используется для планирования выполнения консольной команды
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить