【问题标题】:PHP Exec PHP script from command line on Windows in the background在后台从 Windows 上的命令行执行 PHP 执行 PHP 脚本
【发布时间】:2013-04-06 14:38:24
【问题描述】:

我有一个 PHP 页面,我正在从另一个这样的 PHP 页面执行 - exec('c:\php\php.exe processing.php > NUL ');

处理页面有一个 SQL 存储过程,该过程运行并在存储过程完成后需要一段时间才能完成,然后从结果中创建一个 .csv 并将其放入目录中。

只要执行时间不会太长,整个过程就可以正常工作。如果我在几千条记录上运行它,只需要 3-5 分钟就可以完成。如果我使用 20K 条记录运行它,则该过程需要 10 多分钟才能完成,但在完成之前就被杀死了。

速度不是问题,我们可以接受它需要一段时间才能运行,但不知何故脚本被杀死了。当它运行时,我可以从 Windows 的任务管理器中看到 CLI 进程,但似乎如果它需要超过 10 分钟,Windows 就会杀死它或其他什么。

我只是想弄清楚如何运行它而不会使进程因花费太长时间而被杀死。

对此的任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: php command-line-interface


    【解决方案1】:

    尝试使用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

    【讨论】:

    • 感谢您的帮助。我试过这个,但它没有帮助。我也一直在看 RAM,它离使用太多 RAM 还差得远。它看起来真的像是在 Windows 中杀死它的东西。我做了一些更多的测试,它在它被杀死之前运行了整整 30 分钟。
    最近更新 更多