2016-08-15 80 views
0

我的客戶有幾個在線課程網站,其中包括一個簡單的計時器,記錄課程的學生時間。例如,它將從40小時倒計時。學生需要記錄40多個小時。該值每秒鐘保存到mysql數據庫或大約每10秒我相信。這個簡單的動作似乎超載了我所擁有的cloudlinux服務器。課程計時器超載服務器

計時器使用javascript/ajax(WP Heartbeat)後端顯示並將值記錄到數據庫。被調用的文件通常是admin-ajax.php

是否有更有效的方法來設置它?我的開發人員堅持認爲這是最好的方法。我只需向這些網站添加更多服務器資源(又名$$$)?我被告知禁用心跳或調整頻率,但我的網站依靠此功能記錄學生時間。

任何建議表示讚賞。

謝謝

回答

1

通常情況下,你不會經常爲每個用戶更新數據庫。

你會讓客戶端顯示計數器如何更新每秒(或每幾秒鐘),但你會更新DB:

  • 每1分鐘(例如)
  • 在主頁動作,像「關閉」 /「退出」/......你想捕捉

這樣,你的DB數據是不準確到秒,但爲什麼你需要到線40個小時?用戶真的會說「我做了40小時,但它只顯示39小時59分鐘」?

+0

我覺得你提出了一些很好的觀點,謝謝。你有關於如何減少服務器負載的其他建議嗎?由於網站上有多個用戶,它很快就會過載。 @Galz – kevllar

+0

@kevllar另一個藥水是服務器端層,它從客戶端獲取所有這些心跳,將它們聚合成大塊並每分鐘將其大量保存到數據庫(或每累積一次X更新) – Galz

+0

是「層」軟件存在或需要編寫的Web自定義代碼?你能指出一個GitHub項目或例子嗎? – kevllar