Всем привет.
Сегодня я расскажу о том, как использовать крон на проекте c Yii2.
План работ:
Настройка конфигурации
Контроллер
Постановка задачи в крон
Настройка конфигурации
Если Вы ещё не выполняли никаких действий из консоли, проверьте Ваш файл config/console.php, убедитесь, что в нем подключаются настройки соединения с базой и установлено свойство controllerNamespace
'controllerNamespace' => 'app\commands'
В моем случает контроллеры для консольных команд находятся в каталоге commands
Контроллер
За основу можно взять контроллер предустановленный с системой HelloController в котором уже описано действие actionIndex
Для примера попробуем выполнить его из консоли. Перейдем в консоли в каталог сайта и выполним команду
php yii hello/index --appconfig=config/console.php
Результатом должно быть выведено hello world
Постановка задачи в cron
Для выполнения данного действия по расписанию нужно указать полный путь до данного скрипта, а так же до файла конфигурации
/usr/bin/php /ПОЛНЫЙ_ПУТЬ_ДО_ПРОЕКТА/yii hello/index --appconfig=/ПОЛНЫЙ_ПУТЬ_ДО_ПРОЕКТА/config/console.php
И все, далее устанавливаем расписание и готово. Если у Вас не отключены оповещения на email, то на ящик должно прийти письмо с выводом из скрипта или содержанием ошибки.
На этом все. Пробуйте, если есть вопросы, задавайте в комментариях.