2014-03-05 1 views
0

Google 서버에 푸시 알림 구현은 현재 2 백만 사용자의 푸시 알림 ID가 있습니다. 그러나 Google 시스템에는이 척도와 관련된 몇 가지 문제가 있으므로 Notification Hub를 대안으로 고려하고 있습니다.알림 허브 - 기존 사용자베이스 등록

로그인시 각 사용자를 등록하는 데 필요한 관련 서버 코드를 이미 통합했지만 최근에 로그인하지 않은 모든 사용자에게 접근하려면 모든 사용자를 수동으로 한 번 등록해야합니다. 나는 데이터베이스를 반복하면서 관련 태그를 생성하고 허브에 등록함으로써 간단한 콘솔 앱을 만들었다.

그러나 사용자가 300,000 명인 테스트 데이터베이스에 대해이 프로그램을 실행하면 프로그램이 매우 느립니다. 1.25 분마다 1000 명의 사용자 만 등록하므로 300,000 명이 6 시간 이상, 2 백만 명이 넘을 수 있습니다.

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);  
} 



Q : 신속하게 통지와 함께 큰 기존 사용자 기반을 등록 할 수있는 편리한 방법이 있나요 여기

는 콘솔 응용 프로그램 같은 모습의 작은 샘플입니다 허브?



+0

클라이언트 외부에서 등록을 수행하는 다른 방법을 모른다. 호기심에서 벗어나 디버거를 연결 한 상태에서 Visual Studio 내에서 테스트를 실행 했습니까? 한때 과거에는 VS에서 실행될 때와 실행 파일이 직접 실행될 때 HTTP 요청을 만드는 앱에서 큰 차이를 보았습니다. – MikeWo

+0

나는 디버거가있을 때와 없을 때 모두 시도했다. 소요 시간은 거의 같습니다. – lolcodez

답변

0

귀하의 질문에 짧은 대답 아니, 거기에 아닙니다 내장 된 대량 등록을 지원하는 알림 허브의 기능입니다. 그러나 이것이 더 빨리 진행될 수있는 거대한 장애물 일 필요는 없습니다.

이 코드를 어디에서 실행하고 있습니까? 로컬 네트워크에서이 작업을 수행하고 등록 할 때마다 인터넷을 통해 통신하는 경우 일반적인 네트워크 대기 시간으로 인해 며칠이 걸릴 것입니다. 프로그램을 수일 동안 운영 할 수 없다면 (왜 그렇게 할 수 없는지는 알 수 없지만) Azure 데이터 센터 내에서 코드를 실행하는 것이 더 나을 것입니다. 예를 들면.