使脚本执行无限制

时间:2013-04-02 23:40:52

标签: php xampp

我需要运行一个脚本到localhost(xampp),这将生成14400条记录并将它们添加到数据库中,我设置了max_execution_time = 50000000000,我不知道是否可以通过将其设置为0来使其无限制-1。但我之前尝试过这个脚本,这个max_execution_time到50000000000然后它停在某一点,我不知道还有什么可以限制执行时间,我已经运行了很多次,我厌倦了等待又失败了,什么我应该在再次运行此脚本之前更改,这次是否完成这项工作?

3 个答案:

答案 0 :(得分:119)

您必须将其设置为零。零意味着脚本可以永久运行。在脚本开头添加以下内容:

ini_set('max_execution_time', 0);

请参阅max_execution_time

的PHP文档

请注意:

set_time_limit(0);

会产生同样的效果。

答案 1 :(得分:0)

您的脚本可能正在停止,不是因为PHP超时,而是因为您用来访问脚本的浏览器超时(即Firefox,Chrome等)。不幸的是,很少有一种简单的方法来延长这种超时,而在大多数浏览器中你根本就不能。您在这里的选项是通过终端访问脚本。例如,在Windows上,您将确保PHP可执行文件位于路径变量中,然后我认为您执行:

C:\path\to\script> php script.php

或者,如果您使用的是PHP CGI,我认为它是:

C:\path\to\script> php-cgi script.php

另外,您还可以像其他人提到的那样在脚本中设置ini_set('max_execution_time', 0);。以这种方式运行PHP脚本时,我非常确定如果您愿意,可以使用缓冲区刷新来定期回显脚本到终端的进度。我认为使用这种方法的最大问题是,除了停止整个PHP进程或服务之外,没有办法在脚本启动时停止脚本。

答案 2 :(得分:0)

正如@Peter Cullen的回答所述,您的脚本将首先遇到浏览器超时。因此,最好提供一些日志输出,然后提供/graphql,但连接具有缓冲区,除非提供大量输出,否则您将看不到任何内容。以下是有助于提供可靠日志的代码段:

flush()