Laravel - добавление задач в крон | запуск по расписанию

1. Создайте файл для выполнения ваших задач с помощью такой команды:

    
        php artisan make:command ExampleCommand
    

После выполнения этой команды в директории /app/Console/Commands появится ваш файл с названием ExampleCommand.php

2. Откройте файл ExampleCommand.php и в поле
protected $signature пропишите вашу команду, например так:

    
        protected $signature = 'email_notify:send';
    

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

    
        php artisan email_notify:send
    

Эта команда запустит код внутри метода handle() в файле ExampleCommand.php

3. Для запуска этой команды по расписанию вам нужно эту команду

    
        $schedule->command('email_notify:send')->everyMinute();
    

добавить в метод schedule() в файле Kernel.php который находится в /app/Console
Теперь вам нужно добавить одну команду в ваш файл крон. Для этого откройте ваш кронтаб с помощью этой команды:
crontab -e и добавте эту строку в конец

    
        * * * * * cd /your_project_directory && php artisan schedule:run >/dev/null 2>&1
    

И все, ваш крон запустит Kernel.php каждую минуту, а он в свою очередь запустит ExampleCommand.php А для гибкой настройки расписания вам только нужно изменить метод everyMinute() на другие методы, например на everyFifteenMinutes() в файле Kernel.php