我有一个PHP页面,我正在从另一个PHP页面执行 - exec('c:\php\php.exe processing.php > NUL ');
处理页面有一个SQL存储过程,它运行并在存储过程完成后需要一段时间才能完成,然后页面会从结果中创建一个.csv并将其放入一个目录中。
只要执行时间不长,整个过程就可以正常工作。如果我在几千条记录上运行它只需要3-5分钟就可以完成。如果我用20K记录运行它,这个过程需要10多分钟才能完成,但在完成之前就会被杀死。
速度不是问题,我们可以花一些时间来运行,但不知何故剧本被杀死了。当它正在运行时,我可以从Windows中的任务管理器看到CLI进程,但似乎Windows需要花费超过10分钟的时间来杀死它。
我只想弄清楚如何在没有因为花费太长时间而被杀死的过程中运行它。
对此的任何帮助将不胜感激。
谢谢!
答案 0 :(得分:0)
尝试使用set_time_limit(0)
(请参阅文档:http://php.net/manual/en/function.set-time-limit.php)。
将时间限制设置为0将删除任何时间限制。
另外,请确保您没有任何内存问题。如果你的脚本试图分配太多内存,那么无论如何它都会被杀死。您可以使用memory_get_usage()
检查脚本的内存使用情况(请参阅文档:http://php.net/manual/en/function.memory-get-usage.php)