Страница 1 из 1

Yii2 console and cron job объясните

Добавлено: 2015.02.22, 17:25
Vespertilio
Здравствуйте, объясните в примерах как мне создать задачу в крон и как запустить создание задачи в крон из приложения.
Я использую advanced шаблон, находил какие-то вроде примеры, но ничего толком не понял. Как запустить консольный контроллер из frontend контроллера, как добавить задачу в крон на однократное исполнение, как вообще запустить консольную команду из frontend контроллера? С примером пожалуйста :oops:

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.22, 19:41
samdark
cron не имеет отношения к frontend. Им запускается консольная команда.

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.22, 19:45
ifelse
пишите в crontab туда, где запускается команда

Код: Выделить всё

php /путь/до/папки/с/проектом yii controller/action
где controller/action название консольного контроллера и экшна

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.22, 23:53
denisOgr
PS про консольные комманды можно почитать тут: http://www.yiiframework.com/doc-2.0/gui ... nsole.html

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.23, 23:24
Vespertilio
Sam Dark писал(а):cron не имеет отношения к frontend. Им запускается консольная команда.
Я имел ввиду как инициировать консольную команду в yii2 из frontend, допустим пользователь что-то сделал, залил видео например, мне надо поставить его на перекодировку, соответсвенно контроллер должен создать в кроне задачу которая запустит консольную команду, консольный контроллер с перекодировкой видео, или я не правильно все понимаю?

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.23, 23:26
Vespertilio
denisOgr писал(а):PS про консольные комманды можно почитать тут: http://www.yiiframework.com/doc-2.0/gui ... nsole.html
Я это все читал, пролема в том что тут все примеры ведут к тому что эту команду кто-то запускает, пользователь либо крон, но нет примера где такая команда инициируется приложением по действию пользователя сайта через браузер из контроллера, т.к. это единственный вариант обойти ограничения php по рантайму и прочему если не считать конфиги с 999* секунд рантайма/пост сайз и т.д.

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.23, 23:31
Vespertilio
ifelse писал(а):пишите в crontab туда, где запускается команда

Код: Выделить всё

php /путь/до/папки/с/проектом yii controller/action
где controller/action название консольного контроллера и экшна
я вкурсе что писать в кронтаб, белое пятно у меня в том как запустить команду на одноразовое исполнение, а не по расписанию каждый n промежуток времени, и как собственно добавить команду на исполнение в крон через yii инициированному пользователем сайта через браузер, например при загрузке пользователем видео на сайт, которое потом нужно перекодировать.

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.24, 01:19
samdark
Фронтенд пишет в базу, что мол есть задачка пережать такое-то видео. По крону раз в 5 минут запускается команда. Она проверяет, есть ли в базе для неё новые задачи. Если есть, помечает их как выполняющиеся и делает своё дело. Если нет, ничего не делает.

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.24, 02:13
Insolita
Vespertilio писал(а):
я вкурсе что писать в кронтаб, белое пятно у меня в том как запустить команду на одноразовое исполнение, а не по расписанию каждый n промежуток времени, и как собственно добавить команду на исполнение в крон через yii инициированному пользователем сайта через браузер, например при загрузке пользователем видео на сайт, которое потом нужно перекодировать.
если надо разово и не по крону то просто через exec('php /путь/до/папки/с/проектом yii controller/action') (shell_exec/passthru/system и т.п. или чё там под винду - на свой вкус) https://github.com/vova07/yii2-console-runner-extension - вот в принципе екстеншн есть которй по сути именно это и делает

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.24, 12:30
Vespertilio
Insolita писал(а):
Vespertilio писал(а):
я вкурсе что писать в кронтаб, белое пятно у меня в том как запустить команду на одноразовое исполнение, а не по расписанию каждый n промежуток времени, и как собственно добавить команду на исполнение в крон через yii инициированному пользователем сайта через браузер, например при загрузке пользователем видео на сайт, которое потом нужно перекодировать.
если надо разово и не по крону то просто через exec('php /путь/до/папки/с/проектом yii controller/action') (shell_exec/passthru/system и т.п. или чё там под винду - на свой вкус) https://github.com/vova07/yii2-console-runner-extension - вот в принципе екстеншн есть которй по сути именно это и делает
Полезно, спасибо

Re: Yii2 console and cron job объясните

Добавлено: 2015.02.24, 12:33
Vespertilio
Sam Dark писал(а):Фронтенд пишет в базу, что мол есть задачка пережать такое-то видео. По крону раз в 5 минут запускается команда. Она проверяет, есть ли в базе для неё новые задачи. Если есть, помечает их как выполняющиеся и делает своё дело. Если нет, ничего не делает.
Я думал над таким алгоритмом, но мне казалось там есть какая-то связка без базы, спасибо.