Приложение командной строки Symfony2 «убито» через несколько минут - PullRequest
5 голосов
/ 20 октября 2011

У меня есть приложение командной строки Symfony2, которое я создал.Он извлекает тонну данных из веб-службы для предварительного кэширования.Я сталкиваюсь с проблемой, когда примерно через 5 минут приложение «убито».

Я запускаю команду:

php app/console FTW:loadAuctionHouse

Мое приложение выводит свои шаги во время работы и просто выводит"Убит" внезапно через несколько минут.
Итак ... вопрос: есть ли встроенный лимит времени для приложений командной строки?Или что-то происходит "в стиле фанк"?Может кто-нибудь объяснить, почему это могло произойти?

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

Как и у любого php-приложения (cli, apache или что-либо еще), существует ограничение по времени выполнения.Добавьте

set_time_limit(0);

к инструменту командной строки, чтобы предотвратить это. ВНИМАНИЕ: Это приведет к тому, что скрипт будет работать до бесконечности, если он попадет в бесконечный цикл или какой-либо цикл рекурсии.Хотя это решение лучше, чем увеличение времени выполнения скрипта в вашем php.ini, это следует делать только тогда, когда это действительно необходимо.

0 голосов
/ 11 сентября 2012

Я обнаружил, что эта проблема была вызвана самим PHP. С тех пор я обновил ОС на своем сервере (который, в свою очередь, обновил версию PHP), и эта проблема была исправлена. Я сделал дальнейшее расследование и обнаружил, что эта проблема была исправлена ​​в php 5.3

0 голосов
/ 20 января 2012

Используете ли вы Doctrine в вашем скрипте?

В этом случае это может быть проблема с памятью;каждый раз, когда вы загружаете сущность, EntityManager сохраняет ссылку, вам необходимо отключить / очистить / очистить (в зависимости от ваших потребностей) ваши сущности.

http://www.doctrine -project.org / blog / doctrine2-batch-processing.html

http://docs.doctrine -project.org / projects / doctrine-orm / en / 2.0.x / reference / batch-processing.html

(ссылка обновлена)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...