最近挺火的一個網站ifttt,今天終于激活了,進去看了一下,確實很棒,但做為一個無證程序員,對新的技術新的創意總是充滿了好奇,所以發個帖跟大家討論一下這個網站的實現方法,主要在以下幾點:1、這個網站用web的方式實現了一個觸發器,這個是如何做到的呢? 個人觀點:通過使用后發現這個“觸發器”不是實時的,最小時間間隔是15分鐘,這個可能是考慮到服務器負載的原因吧。每個task當然是記錄在了數據庫,實現觸發器功能主要的難點在于如何來觸發,這個從數據庫和web服務器兩方面來說?! ≡跀祿旆矫嬉话愣加杏媱澣蝿展δ?,用這個可以做到定時去檢查數據庫進行觸發,但難點在于調用執行task的程序,這點應該是比較難的??赡艿慕鉀Q方案是寫個系統服務來執行task,然后在計劃任務中調用這個服務?! ≡趙eb服務器方面可用定時器或另開一個線程,這個線程定時檢查數據庫中的task,然后執行。2、如何確保準時? 如果有10W個task要在某個時間點上執行,即使用上面提到的幾種方法實現了觸發器,現在大部分API中沒有定時執行功能,如何保證每個task準時執行呢,這個目前沒任務思路。歡迎大家對上面兩個問題給出自己的看法!
1 回答

largeQ
TA貢獻2039條經驗 獲得超8個贊
1、對于提供實時通知功能的服務,如Gtalk可以實現簡單客戶端,使用低價的計算機集群來收集信息,對于沒有實時通知功能的,可以使用定時查看的策略,這也是你說的15分鐘現象。如果后期網站用戶變得多起來,可以定制策略,對于無效賬戶降低查看頻率權重。
2.對于沒有提供定時功能的task,可以在task被觸發后放到一個隊列里,然后使用服務器集群來協同完成task,盡量保證時效。
個人想法太愚鈍,可能他們用的是更有策略與效率的方法。不過不重要,重要的是我要這50分啊
- 1 回答
- 0 關注
- 466 瀏覽
添加回答
舉報
0/150
提交
取消