2011-12-14 101 views
1

我有一个我正在开发的wordpress插件的功能需要很多时间。 它连接到TMDb(电影数据库)并逐个检索所有电影(从0到8000)并创建一个保存在本地服务器上的XML文档。 当然,这需要一些时间,而PHP说:“504网关超时服务器没有及时响应。”脚本中的PHP服务器超时

我能做什么?任何sugestions!

回答

1

假设一次执行并且正在轰炸你,你可以将set_time_limit设置为0并允许它执行。

<?php 
    set_time_limit(0); // impose no limit 
?> 

不过,我会确保这是不是在生产中,当你希望它(否则这将放置(并继续把)服务器上的大负载),它只会跑了。

+0

大多数服务器都在安全模式下运行,所以我无法设置时间限制!我正在寻找一些聪明的方式来编写代码,我几乎是PHP新手,这就是为什么我在寻找建议..这个插件的脚本将运行一次与db的同步! – Max 2011-12-14 18:49:27

+0

@Max:另一种选择是在加载时输出内容,因此它不是“死连接”。你可以每隔多少次阅读一次,执行一个'回声'工作......'; flush();`它将继续将数据推送到侦听客户端,直到它完成。 – 2011-12-14 18:50:29

0

尝试设置:

set_time_limit(0); 

在脚本头。但我认为这是服务器问题,你读得太久了。尝试在线程模式下阅读。

0

我认为这与脚本超时无关。

504-网关超时问题完全是由于后端计算机(可能包括Web服务器)之间的IP通信速度较慢。

修复: 请使用代理或增加缓存大小(在您的php.ini中搜索“缓存”并使用它)限制。

Dot