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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.22, 17:25

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

Аватара пользователя
samdark
Администратор
Сообщения: 9195
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark » 2015.02.22, 19:41

cron не имеет отношения к frontend. Им запускается консольная команда.

Аватара пользователя
ifelse
Сообщения: 227
Зарегистрирован: 2013.02.05, 13:05

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

Сообщение ifelse » 2015.02.22, 19:45

пишите в crontab туда, где запускается команда

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

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

Аватара пользователя
denisOgr
Сообщения: 133
Зарегистрирован: 2012.02.02, 13:18
Контактная информация:

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

Сообщение denisOgr » 2015.02.22, 23:53

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

Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.23, 23:24

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

Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.23, 23:26

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

Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.23, 23:31

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

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

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

Аватара пользователя
samdark
Администратор
Сообщения: 9195
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark » 2015.02.24, 01:19

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

Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

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

Сообщение Insolita » 2015.02.24, 02:13

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

Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.24, 12:30

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

Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

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

Сообщение Vespertilio » 2015.02.24, 12:33

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

Ответить