Вы можете использовать планировщик заданий для Windows
- Создайте файл
.bat
, который должен содержать команду для запуска консольного приложения Yii controller/action
, если вы создаете класс контроллера TestController
, который расширяет yii\console\controller
и добавляет действие create
, чтобы запустить это действие из В консольном приложении Yii вы должны набрать ./yii test/create
в корневом каталоге проекта, используя gitBash или console, поэтому мы добавим эту команду в файл .bat
, указав полный путь к project_root/yii
, который является файлом начальной загрузки консоли Yii. Это главное, чтобы запустить задание как часть кода действия контроллера Yii.
открыть блокнот и скопировать в него код, сохраненный как .bat
с именем my-cronjob.bat
@Echo off
title My Cron Job
:: See title at the top
php F:\xampp\htdocs\my-project\yii test/create
pause
ПРИМЕЧАНИЕ: убедитесь, что у вас есть php
в Windows Path Variable
или вы должны указать полный путь к php.exe
в указанном выше .bat
файле
Шаги по созданию планировщика задач

- Напишите название для задачи

- Выбрать время запуска
Daily

- Выберите время для выполнения задачи

- Выбрать
Action
Запустить программу

- Теперь выберите файл
my-cronjob.bat
и нажмите Далее и Готово

- Теперь перейдите в диспетчер задач и выберите
Task Scheduler Library
и щелкните правой кнопкой мыши на только что созданном cronjob и откройте свойства.

- Выбрать
Run with highest privileges

ПРИМЕЧАНИЕ: вы можете выбрать запуск cronjob, если пользователь вошел в систему или нет, по умолчанию он запускается, только если пользователь вошел в систему, вы можете изменить эту опцию.
То есть теперь вы можете либо запустить задачу вручную, щелкнув правой кнопкой мыши и выбрав команду run, и она запустит требуемый controller/action
, указанный в my-cronjob.bat
, либо дождаться его запуска в указанное время.
Для работы в фоновом режиме
Приведенные выше настройки откроют командную строку и запустят задачу, если вы хотите, чтобы планировщик выполнил задачу минимизировано, вы должны увидеть это link
и соответствующим образом обновить параметры задачи , Также вы можете изменить последнюю строку pause
на Exit
тоже.
Я проверил его, прежде чем публиковать ответ здесь, поскольку у меня есть Windows10
ОС у меня дома, поэтому я не смог опубликовать ответ без тестирования из офиса.