我們目前在我們的服務器上推送通知的推送通知ID約爲200萬用戶。但是,我們的系統在這個規模上存在一些問題,因此我們正在考慮將通知中心作爲替代方案。通知中心 - 註冊現有用戶庫
我們已經整合了登錄每個用戶所需的相關服務器代碼,但爲了覆蓋最近未登錄的所有用戶,我們需要手動註冊所有用戶一次。我創建了一個簡單的控制檯應用程序,通過循環訪問我們的數據庫,創建相關標籤並將其註冊到集線器來完成此操作。
但是,對於只有300,000個用戶的測試數據庫運行該程序,該程序非常慢。它每1.25分鐘只註冊1000個用戶,這意味着整個30萬用戶可能需要6個小時以上,而200萬用戶可能需要幾天的時間。
這裏是什麼樣的控制檯應用程序看起來像一個小樣本:
var accounts = GetUsers();
Parallel.Foreach(accounts, account =>
{
var registration = Register(user.ID, user.pushID).Result;
});
async Task<RegistrationDescription> Register(int ID, string pushID)
{
string ID = "ID-" + ID;
HashSet<string> tags = new HashSet<string>();
tags.Add(ID);
return await client.CreateAppleNativeRegistrationAsync(pushID, tags);
}
問:有沒有快速註冊通知了大量現有用戶羣的便捷方式集線器?
我不知道另一種方式來執行客戶端外部的註冊。出於好奇,當您運行測試時,您是否在Visual Studio中使用調試器進行測試?在過去的一次,我發現應用程序中的一個很大的區別是,當它從VS運行並且可執行文件直接運行時,會發出類似這樣的HTTP請求。 – MikeWo
我試過和沒有調試器。所花費的時間大致相同。 – lolcodez