Command line Symfony2命令行应用程序是;“杀死”;几分钟后

Command line Symfony2命令行应用程序是;“杀死”;几分钟后,command-line,symfony,Command Line,Symfony,我有一个Symfony2命令行应用程序,我已经建立。它从web服务获取大量数据以预缓存。我遇到了一个问题,大约5分钟后,应用程序被“杀死” 我运行命令: php app/console FTW:loadAuctionHouse 我的应用程序在运行时输出其步骤,几分钟后突然输出“Killed”。 所以问题:命令行应用程序是否有内置的时间限制?还是有什么“古怪”的事?有人能解释为什么会发生这种情况吗?因为每个php应用程序(cli、apache或其他任何应用程序)都有执行时间限制。加 set_ti

我有一个Symfony2命令行应用程序,我已经建立。它从web服务获取大量数据以预缓存。我遇到了一个问题,大约5分钟后,应用程序被“杀死”

我运行命令:

php app/console FTW:loadAuctionHouse
我的应用程序在运行时输出其步骤,几分钟后突然输出“Killed”。
所以问题:命令行应用程序是否有内置的时间限制?还是有什么“古怪”的事?有人能解释为什么会发生这种情况吗?

因为每个php应用程序(cli、apache或其他任何应用程序)都有执行时间限制。加

set_time_limit(0);

到您的命令行工具,以防止这种情况注意:如果陷入无止境循环或某个递归循环,这将导致脚本一直运行到无穷远。虽然这个解决方案比在php.ini中增加脚本执行时间要好,但它应该只在真正必要的时候才执行。

您在脚本中使用了条令吗

在这种情况下,这可能是内存问题;每次加载实体时,EntityManager都会保留一个引用,您需要分离/清除/刷新(取决于您的需要)实体


(链接更新)

我发现这个问题是由PHP本身引起的。我已经升级了服务器上的操作系统(这反过来又升级了PHP版本),这个问题已经解决了。我做了进一步的调查,发现这个问题在PHP5.3中得到了纠正。您能描述一下运行脚本的环境吗?看起来问题不在PHP/Symfony中。例如,我的主机提供商会自动终止长时间运行的进程。Ubuntu 10.4服务器。我自己的机器,所以进程不会自动终止。我有其他PHP批处理应用程序在Symfony之外运行,有时会运行数小时而没有问题。
PHP-I | grep max_execution_time
会在您的系统上返回什么?
PHP-I | grep max_execution_time
导致
max_execution_time=>0=>0
可能重复的感谢,但不幸的是,这对我来说没有任何改变:(它仍然以“Killed”结尾)使用代码中指定的时间限制。您介意尝试更改php.ini中的执行时间等以进行测试吗?有关信息,请参阅。我的cli php.ini将执行时间设置为600,当我将其更改为0并运行我的应用程序时…它仍然以“Killed”响应大约9分钟后。是的,使用条令;我会尝试一下。最后,这个脚本执行大约100k个insert语句,所以你的建议可能就是我想要的答案。谢谢!我也有这个问题。我已经使用flush after one执行循环。我还能做什么?LayMain的上述答案是正确的。是我mory问题..我添加了更多的同花顺,效果很好…@Chris你应该将你的问题标记为已回答,如果它是solution@Laymain我还没有机会重构项目的这一部分。我最终作为一个纯粹的PHP应用程序(没有框架)来完成这项工作因为我在Symfony和Doctrine方面有问题。一旦我回去解决问题,我会标记问题的答案,如果它解决了我的问题。再次感谢您的帮助!