我有一個通過cron運行一個腳本,在我的數據庫中的表的一個處理每行(或用戶),然後使用捲曲根據找到的用戶名拉網址在行中,然後將附加信息添加或更新到同一行中。這在大部分情況下工作正常,但似乎需要大約20分鐘才能完成整個數據庫,並且它似乎越慢越慢進入while循環。我現在有大約4000行,未來會有更多。的最佳方式來處理大量while循環在PHP
現在我的代碼的簡化版本是這樣的:
$i=0;
while ($i < $rows) {
$username = mysql_result($query,$i,"username");
curl_setopt($ch, CURLOPT_URL, 'http://www.test.com/'.$username.'.php');
$page = curl_exec($ch);
preg_match_all('htmlcode',$page,$test)
foreach ($test as $test3) {
$test2 = $test[$test3][0];
}
mysql_query("UPDATE user SET info = '$test2' WHERE username = '$username');
++$i;
}
我知道的MySQL querys不應該在一個while循環,這是最後一次查詢我從它刪除,但什麼是處理需要長時間反覆運行的while循環的最佳方式?
我想最好的辦法是必須通過一次行10運行,那麼停止腳本。例如,因爲我在CRON中有腳本,所以我希望每5分鐘運行一次腳本,它將運行10行,停止,然後以某種方式知道CRON作業再次啓動時接下來的10行。然而,我不知道如何完成這個。
任何幫助,將不勝感激!
謝謝,這工作得很好。 =) – user1342220