0
我有一個腳本,它作爲我的模塊的一部分在Drupal中運行。 在本模塊中,我使用cURL函數從遠程網站請求html頁面,然後解析html內容並將其寫入我的數據庫。 我希望在我對遠程服務器的每個請求之間有一段延遲,因此我在我的PHP腳本中添加了sleep()
。PHP中的睡眠命令返回非零值
function get_me_data()
{
for(15 iterations)
{
$html = file_get_contents($search_url);
//parse html contents
$delay = mt_rand($interval1,$interval2); // interval1 = 0 , interval2=30
$retval = sleep($delay);
}
}
- 功能
get_me_data()
由cron作業(hook_cron在.module文件中實現)發起。 - 我也嘗試刷新使用睡眠命令之前的流。 使用
flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)
恰巧,後4-5次迭代,sleep()
命令返回非零值。 當sleep()
被稱爲
時,腳本會在下一次迭代中中止。如果我忽略了此處的任何方面sleep()
,請告訴我。 我使用,PHP版本5.3 &的Drupal 6
感謝您的輸入。我也使用了time_sleep_until()。我注意到的一件奇怪的事情是,當我在我的drupal localhost安裝上運行這些腳本時,sleep()和time_sleep_until()都失敗。 – rachel 2011-03-08 13:12:50
我已經使用time_sleep_until()驗證了我的服務器上的php腳本。經過兩次迭代後,我在函數調用之前看到一個調試語句,然後沒有調試語句。 – rachel 2011-03-08 13:19:21
@rachel你在本地主機/服務器上運行什麼操作系統? – Jacob 2011-03-08 23:40:39