Для запуска задач из крона в Laravel можно использовать встроенную в фреймворк утилиту Artisan, которая позволяет выполнять команды через командную строку.
Шаг 1: Создание команды
Первым шагом нужно создать команду, которую вы хотите запустить. Для этого выполните команду php artisan make:command
, указав имя команды. Например, если вы хотите создать команду с именем "MyTask", выполните следующую команду:
php artisan make:command MyTask
После выполнения команды будет создан класс app/Console/Commands/MyTask.php
, в котором можно определить логику задачи.
Шаг 2: Определение логики задачи
Откройте файл app/Console/Commands/MyTask.php
и внутри метода handle()
определите логику задачи, которую вы хотите выполнить. Например:
public function handle() { // Ваш код для выполнения задачи }
Шаг 3: Регистрация команды
После определения логики задачи нужно зарегистрировать команду в файле app/Console/Kernel.php
. Откройте этот файл и добавьте новую строку в массив $commands
в методе schedule()
, указав полный путь до класса команды.
Например:
protected function schedule(Schedule $schedule) { $schedule->command('mytask') ->daily(); }
Шаг 4: Запуск задачи
Теперь, чтобы запустить эту задачу, вы можете использовать утилиту Artisan и выполнить следующую команду:
php artisan mytask
Вы также можете настроить запуск задачи по расписанию, добавив соответствующие методы внутри метода schedule()
в файле app/Console/Kernel.php
. Например, чтобы задача запускалась каждый час, вы можете использовать метод hourly()
:
protected function schedule(Schedule $schedule) { $schedule->command('mytask') ->hourly(); }
Шаг 5: Настройка крона
Наконец, чтобы запускать задачи Laravel по расписанию, нужно настроить крон-задачу, которая будет вызывать утилиту Artisan. Для этого добавьте следующую строку в ваш файл crontab:
* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
Здесь /path/to/your/project
- путь к вашему проекту Laravel.
В данном случае крон будет запускать утилиту Artisan каждую минуту и проверять, нужно ли запускать запланированные задачи.
Теперь задача будет выполняться автоматически по расписанию, описанному в методе schedule()
. Если вы хотите запустить задачу вручную, вы можете использовать команду php artisan mytask
.