避免CGI超时

时间:2010-10-13 08:15:42

标签: .htaccess timeout cgi

我有一个函数,它获取一个大型XML文件,然后对其进行解析,然后使用详细信息来获取更多xml文件,这些文件再次被解析(网上商店)。

问题是,处理大约需要15-20分钟,但脚本会在此之前超时,并向我发送500错误消息。

有解决方法吗?

我在这里的帖子中读到,每隔一段时间写一条日志消息有助于避免这个问题,但我该怎么做呢?如果我尝试回显,写或返回某些东西,它只返回值并结束我的功能。

以下是错误消息:

[Wed Oct 13 10:34:41 2010] [warn] [client 213.175.111.200] Timeout waiting for output from CGI script /home/virtual/site14/fst/var/www/interpreters/php-script
[Wed Oct 13 10:34:41 2010] [error] [client 213.175.111.200] Premature end of script headers: php-script
[Wed Oct 13 10:36:41 2010] [warn] [client 213.175.111.200] Timeout waiting for output from CGI script /home/virtual/site14/fst/var/www/interpreters/php-script

谢谢!

1 个答案:

答案 0 :(得分:4)

对于那些寻找答案的人,你可以找到一些似乎有用的东西:

  1. 将Web服务器上的TimeOut值设置为0或非常大的值。我最终将它设置为0,因为我需要运行脚本,例如,永远。
  2. 如果由于使用共享主机而无法使用1,则最有可能的选择是定期返回一些日志信息。我必须警告你不要将这段代码变成函数,因为不可能继续连续返回函数。您可以将代码的一部分作为函数,但最终,Good old echo函数将为您执行此操作
  3. 您可以尝试一些Comet方法,但它们相当复杂,并且很可能不会解决所有问题。
  4. P.S。我有点使用javascript重定向解决了我的问题,这是一个痛苦的a * s,所以我不建议任何人以同样的方式做它。