0

Google은 앱 사용자에게 업데이트를 보내는 Android 앱을 개발했습니다. 업데이트는 관리 콘솔 (JAVA SWING 응용 프로그램)에서 Google 서버에 게시 된 다음 데이터베이스에 저장됩니다. 데이터가 성공적으로 완료되면 데이터베이스에 삽입되면 Google은 GCM 푸시 알림을 통해 앱의 모든 사용자에게 동일한 업데이트를 보내려고합니다. 우리는 수백만 명의 사람들을 수용 할 수있는 시스템을 구축하기 위해 notifciation을 실행하기 위해 멀티 쓰레딩 (Executor 서비스를 사용하고있을 수도 있음)을 사용하고자합니다 .GCM은 1000 개의 장치로 보내질 수 있습니다 (한꺼번에 호출 할 수 있습니다). 작업의 일련의 DB 2.Create 무리 목록에 1.Insert 데이터를 것 .SO 첫번째 3. 그 다음은 각각의 무리GCM 푸시 알림 멀티 스레딩

에 통지를 보내 무리의 목록 (각 무리 1000 gcmids를 포함) 만들기 3 단계는 우리가 멀티 스레딩을 사용할 계획입니다. 그러나 클라이언트가 응답을 내재적으로 할 수 있도록 step1 그 자체로 돌아가고 싶습니다. (JAVA SWING APP는 데이터가 DB에 삽입되는지 여부에 관계없이 초기화됩니다. GCM 푸시)

그렇다면 1 단계에서 돌아가려면 그런 내용을 어떻게 디자인해야합니까? 다음 2 단계는 주 스레드에서 수행해야하며 3 단계은 멀티 스레딩을 사용하여 달성해야합니다.

답변

0

이 작업은 백그라운드 처리 또는 작업자 프로세스로 수행 할 수 있습니다.

이러한 종류의 장기 실행 작업을 백그라운드에서 실행하여 요청 된 클라이언트가 대기 할 필요가없는 여러 가지 방법이 있습니다.

이러한 종류의 작업을 수행하는 도구 중 일부는 작업/작업 대기열입니다. Gearman, Redis Resque, Iron MQ (jobb 대기열로 사용할 수있는 많은 메시지 대기열이 있음)를 사용할 수 있습니다.