2011-04-06 35 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(),或者更好地進行單獨的腳本調用。