我進不了太多的細節,因爲這是工作的一個項目,但不管怎麼說..更好的方法來優化PHP定時任務
我在PHP編寫一個SOAP客戶端的過程很是推動所有對MySQL數據庫的響應。我的主腳本發出一個初始的肥皂請求,用於檢索大量項目(目前約爲4000個,但預計在某個時間點將增加到幾十萬)。
一旦返回4000個項目的這個列表,我使用exec(「/ usr/bin/php path/to/my/historyScript.php &」)發送每個項目的歷史請求。 Web服務API支持多達30個請求/秒。下面是我目前在做什麼一些僞代碼:
$count = 0;
foreach($items as $item)
{
if ($count == 30)
{
sleep(1); // Sleep for one second before calling the next 30 requests
$count = 0;
}
exec('/usr/bin/php path/to/history/script.php &');
$count++;
}
我遇到的問題是,我不能確定時,該過程後,我的開發服務器已經開始崩潰。由於數據預計會增長,我知道這是對我的問題很糟糕的解決方案。
可能有更好的方法,我應該考慮使用這樣的任務嗎?我只是覺得這是更多的'黑客'
您可以嘗試計算處理這30個請求花費多少時間,然後再睡1次,這會讓它稍快一點。 –