我們的目標是建立關於用戶在線時間段的時間表。 (這其實並不重要,我們在說些什麼用戶約和他是在網上)要獲取有關onliners信息,我們可以調用API方法,someservice.com/api/?call= whoIsOnline有人在線時捕獲時間間隔?你會如何阻止這個功能?
whoIsOnline方法會給我們一個當前在線用戶的列表。但有沒有API方法來獲取有關誰不在線的信息。因此,我們應該使用我們從whoIsOnline得到的信息來構建我們的時間表。當然會有測量誤差(我們無法實時跟蹤信息)。假設我們會每2分鐘致電whoIsOnline方法(是的,我們將每2分鐘通過cron運行我們的腳本)。
例如,調用whoIsOnline在08:00將返回
Peter_id
Michal_id
Andy_id
調用whoIsOnline在08:02將返回
Michael_id
Andy_id
George_id
正如你可以看到,彼得已經下線,但我們有新的在線人 - 喬治。
可用的工具是Db(MySQL)/文本文件/鍵值存儲(Redis/memcache);隨意選擇他們中的任何一個(甚至全部)。
所以,我們要得到這樣
George_id was online...
12 May: 08:02-08:30, 12:40-12:46, 20:14-22:36
11 May: 09:10-12:30, 21:45-23:00
10 May: was not online
現在信息的問題...
- 你如何存儲的信息來實現這樣的時間表?
- 如何查詢/計算用戶在線時間段的信息?
更多信息..
- 不能更新有關脫機用戶,只有誰是「目前」在線用戶的信息。
- 解決方案應該靈活:時間線信息可以表示爲與任何時區有關。
- 我們應該只保留最近7天的信息。
- 每個在線看到的用戶都會在我們的數據庫中自動獲取他自己的標識符。
UFF ..這是真的很難,我把它寫,因爲我的英語很糟糕,但我希望我的問題很清楚你。
謝謝。
你的英語並不差,尤其是與其他一些用戶相比。 – SLaks 2010-04-18 14:06:33
'memcache'是一個緩存機制,而不是一個存儲機制。沒有彈性保證,假設您可以在緩存過程終止時返回數據。 – 2010-04-19 07:56:25
是的,我知道 - 這是我的錯誤。 – Kirzilla 2010-04-22 13:08:55