2013-03-22 34 views
1

我正在使用asp.net Mvc-3 C#開展分類廣告web應用程序工作。如何使用C#高效地計算社會份額計數

每個廣告都可以在facebook,twitter,google plus,linkedin等社交媒體上分享。

我正在計算廣告在這些網站上共享多少次並在數據庫中保存此記錄。

使用此功能

string jsonString = new System.Net.WebClient().DownloadString(URL-of-ad); 
var serialize= new System.Web.Script.Serialization.JavaScriptSerializer(); 
var dictionary = serialize.Deserialize<Dictionary<string, string>>(jsonString); 
var twitter = dict["count"]; 
var facebook= dict["share_count"]; 

// calculating for other website by this function 

這是功能工作正常,但非常耗費時間的爲每個廣告。我所擁有的廣告千元,所以我經過千周時間必須循環和調用這個函數爲每個廣告。

我在一天內調用這個函數兩次。

還有其他更好更快的方法來完成這項任務嗎?

請給出您的建議。

回答

1

你可能會認爲提高您的設計

1 - 創建一個Windows服務並將其設置爲運行兩次,每天,最有可能找出當你的網站的流量是很小的。

2-將共享計數邏輯移入Windows服務中,該服務將在另一個進程中執行並釋放主應用程序。

3-下載依賴於網絡速度的東西,使yopur下載異步,而不是同步。

1

幾點建議:在平行

  1. 運行此,如使用Parrallel.ForEach,通過在添加或異步版本的URL,如DownloadStringAsync。兩者將同時運行多個下載。
  2. 當頁面加載顯示添加時運行此。加載添加,然後執行Web服務調用服務器以獲得countshare_count。這可能會多一點工作,但它會更新,如果每次添加很少顯示,這可能會更有效。

我假設你創建頁面時沒有運行這一點,但如果你是,將其移動到一個單獨的服務或過程SAURABH建議。