2011-11-18 31 views
1

我有一個大廳頁面,每秒鐘都會到MySql數據庫,並檢查表中每個時間戳變量(屬於用戶),如果時間戳比(NOW() - 3)秒,它將'connection'(bool)變量設置爲false。基本上它會檢查所有當前連接的用戶。使用AJAX每秒更新相同的MySql表

我還沒有在真正的服務器上測試過,但我有一種感覺,這將是非常密集的過程。因爲每個用戶都可以訪問大廳區域,並且每個用戶都會向MySql數據庫發送請求並更新表格。這意味着如果我在大廳區域有1000個用戶,意味着每秒1000個請求。 我的問題是,有沒有其他的方式來做同樣的事情,沒有發送這麼多的請求?我研究了Cron作業,但cron不會讓您每隔1秒運行一次特定的腳本。我認爲最低限度是1分鐘。

+0

您正在使用什麼類型的表? – triclosan

+0

我在這裏首先想到的是,每一秒都有點短,它將是每秒1000次讀取和1000次更新,您應該有一個非常高端的數據庫服務器,並有適當的阻塞/鎖定計劃。 –

+0

我不明白爲什麼它有這麼艱鉅的任務。理論上如果有人在大廳頁面上離開他的電腦,每個用戶都應該得到更新的信息。 –

回答

1

我認爲這將幫助你運行你的腳本兩次每1分鐘:

 
function for_cron() { 
    //database update code 
} 
function check_up() { 
    //assuming you dont have anything to echo 
    //call the function 
    foo_cron(); 
    sleep(30); //sleep 30 seconds 
    for_cron(); 
} 
Then setup your "check_up" function to run on cron for every 1 minute 

霍普特它有助於