Cron Job в symfony2

Я создаю консольную команду в своем проекте. Я хочу, чтобы он исполнялся каждый день в семь вечера. Как я мог сделать это в symfony2? Основной способ работы с php cron или symfony2 имеет что-то более удобное? благодаря

Вы можете использовать базовый cron . На debian или ubuntu вы можете сделать это:

crontab -e -u <username> 

Где username – это имя пользователя, который должен выполнить команду. В редакторе добавьте свою команду. Вот хорошее объяснение того, как должна выглядеть линия. Для команды Symfony2 что-то вроде этого должно работать:

 * * * * * /usr/bin/php /var/www/symfony2/app/console your:command --option=123 

Это выполнит your:command --option=123 каждую минуту.


На машине Windows вы можете использовать команду ac . Он доступен для Windows 7 по умолчанию. Прочтите документы здесь . Он должен выглядеть примерно так:

 AT 00:00 /every:M,T,W,Th,F "php /var/www/symfony2/app/console your:command --option=123" 

Убедитесь, что php доступен глобально, или правильный путь к файлу php.exe .

Вы можете просто установить cron в crontab для выполнения команды symfony,

например

0 19 * * * / var / www / symfony / app / console YOUR_COMMAND

Я думаю, что это хороший вопрос.

Недавно я сделал некоторую работу (используя компоненты ZF1, а не полный MVC), где все виды скрытых зависимостей существовали на заданиях cron для выполнения задач, и мне приходилось тратить много времени на добавление комментариев и создание документации, чтобы предупредить всех, кто идет за мной, о существовании этих crons , что они сделали, где они были сохранены и так далее.

Мне никогда не приходило в голову, что для этой цели будет компонент ZF, много зависимостей от контроллеров, хотя …

Извините, но я не отвечаю на ваш прямой вопрос.

FWIW

Обратите внимание на пользователя, которого вы используете для выполнения команды. Если вы запустили его как root, root мог бы владеть кешем Symfony, а затем разорвать HTTP-сайт вашего сайта (например, nginx будет работать как пользователь www-data).

С Docker я использую метод «setuser» с базовым изображением phusion, чтобы заставить пользователя www-data.