我有一個簡單的PHP腳本,一旦運行,我就無法訪問服務器上的任何其他頁面。簡單的PHP腳本使服務器負載很重
腳本是如此簡單:
for($league=11387; $league<=11407; $league++){
for($i=1; $i<9; $i++){
//gets the team object here from external resource
$team = $HT->getYouthTeam($HT->getTeam($HT->getLeague($league)->getTeam($i)->getTeamId())->getYouthTeamId());
if($team->getId() != 2286094){
$youthTeams[] = $team;
}
set_time_limit(10);
}
}
很顯然,我應該得到「團隊」在這裏的數千名(除了一個用2286094的ID),但一旦我運行此腳本,我不能打開服務器上的任何其他頁面,直到結束爲止,並且需要很長時間才能將腳本提取到$ youthTeams陣列中。
我的目的是創建一個進度條,可以精確地(以%爲單位)顯示腳本的位置,但由於此腳本無法讓服務器顯示任何其他頁面(您可以獲得其他任何頁面「加載」,但它永遠不會加載,因爲這個腳本正在服務器上運行)。
此外,加入子問題:一旦所有這些數據被提取,是否聰明的插入一個單一的查詢mysql數據庫?
我真的想在這方面學得更多,並希望完成這個,所以請幫助我解決這個問題。
您可能正在使用基於文件的會話,這意味着您的這個腳本在執行其> - getTeam內容時會對會話鎖定。嘗試在循環前添加'session_write_close()'來釋放會話鎖定。這將允許你擊中該網站的其他部分。 –
非常感謝你好人!我已經做了一個解決方法,所以即使沒有啓動會話,我也可以真正運行該文件(它是cron作業),並且不會「凍結」服務器的其餘部分。它現在在工作,但如果你願意分享,我想更多地瞭解幕後發生的事情。 :-) –