2011-04-06 41 views
1

我想启动一个应该读取大约20.000条记录的php程序,调用facebook API,返回一些数据并更新数据库。用20.000条记录更新MySql DB的问题

但经过500个左右的记录,页面超时,并说:

""Network Error (tcp_error) 
A communication error occurred: "" 
The Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time. 
For assistance, contact your network support team. "" 

我想,也许是因为有连接IN和OUT的大量的从该服务器,因此服务器停止响应。

另外,如果我尝试打开同一个域上的任何页面,我不能。该页面将挂起,直到完成处理。

有什么可以优化的吗?

+0

@Silver Light,@Sourav,感谢您的消化。我会尝试在通话之间“睡眠”。 但是第二个问题呢。 即使我更新了100条记录,我仍无法在同一个域上打开任何内容,直到完成该过程?这是一个问题,因为一直都有用户。 – darko4spain 2011-04-06 14:15:23

+0

你使用基于文件的会话吗?当脚本正在使用它时,PHP锁定会话文件。如果您的处理脚本在执行此长批处理作业时未修改会话,请执行'session_write_close()'释放会话,以便您可以使用同时使用会话的网站的其他部分。否则你的脚本会“锁定你” – 2011-04-06 14:25:03

回答

1

我认为facebook可能会在一段时间内对连接有限制。我建议你每次处理大块脚本并处理400条记录。在块之间放置一个sleep(),或者更好地进行单独的脚本调用。