2014-07-21 2 views
1

나는 앞으로 2 주 이내에해야 할 일이 있으며 현재 계획하고 있습니다. 이 방법이 효과가 있다고 생각하는 방식으로 작동하는지 알아야합니다.Quartz로 외부 서비스를 폴링하고 결과를 대기열을 통해 클라이언트에 보냅니 까?

다음은 현재 설정 한 내용입니다.

서버 A - 외부 서비스와 통신하기위한 외부 인터페이스 (외부 리소스에 대한 정보 제공)가 있습니다.

클라이언트 B - 서버 A에 연결합니다 (기본적으로 UI 제공).

문제 : I는 서버 및에 설치 Atmosphere 원하는

: 나는 클라이언트 B.

내 솔루션에 서버 A에서 "활성 실시간으로 업데이트"를 얻을 필요 고객. 클라이언트는 서버에 가입하고 서버는 새로운 정보를 푸시합니다.

Quartz를 사용하여 서버 A의 외부 리소스를 주기적으로 폴링하여 클라이언트 B (아마도 10-20 초 정도)와의 지속적인 통신 스트림을 허용하려고 생각했습니다.

이 설정이 적절한가요? 이 문제를 해결할 더 좋은 방법이 있습니까?

답변

1

어떻게 "실시간 업데이트"를 원하십니까? 업데이트를 10 ~ 20 초마다 수행하려면 분위기를 과도하게 사용하는 것이 좋습니다. 웹 소켓은 10-100 밀리 초의 순간에 실시간 업데이트를 제공합니다. 10 초마다 업데이트를 받으려면 클라이언트와 서버를 계속 연결할 필요가 없습니다. 또한 대기를 사용하는 경우 Quartz를 폴링 서버로 사용하는 것은 의미가 없습니다 (푸시한다는 것은 폴링 할 필요가 없음을 의미합니다).

서버 A를 http REST 끝점으로 사용하고 및 ScheduledExecutorService (scheduleAtFixedRate 메서드 사용)과 같은 클라이언트 http 라이브러리를 사용하여 10 초마다 데이터를 가져옵니다.

+0

이상적으로 우리는 즉각적인 통신을하고 싶습니다만, 서버 A가 쿼츠를 사용하여 외부 서비스를 폴링하고 서버 A에서 서버 B가 대기를 통해 통신한다는 것을 의미합니다. – envinyater

+0

그런 경우 설정이 적절합니다. – mayr

관련 문제