2011-05-11 2 views
1

웹 사이트에서 라이브 피드/폴링을 관리하는 것과 관련하여 추상적 인 질문이 있습니다.웹 응용 프로그램에서 "라이브 활동 피드"를 채우기위한 데이터 조합/관리

웹 응용 프로그램 (Java/Spring/Hibernate를 기반으로 작성 됨)을 만들고 사용자의 홈 페이지에서 모든 구성원의 최신 활동에 대한 라이브 피드를 원합니다. 서버 측에서이 쿼리를 처리하는 가장 좋은 방법입니다.

현재 사용자의 팀원 목록을로드 한 다음 각 팀원을 반복하여 최신 대화/파일 업로드/등을로드 한 다음이 모든 활동을 단일 팀으로 병합하는 것입니다 목록을 타임 스탬프별로 정렬하고 반환합니다 (예를 들어 피드에 대한 상위 10 개의 최근 활동 만 반환한다고 가정 해 보겠습니다).

그러나이 작업은 정기적으로 수행해야하므로 (폴링 간격에 따라) 매우 성능이 좋은 것처럼 보입니다.

또한 모든 활동 (대화/상태 업데이트/업로드)을 Activity 클래스로 확장 한 다음 사용자 집합에서 모든 최신 활동을 선택하는 DAO에 직접적인 SQL/JPQL 쿼리 만있는 것으로 고려했습니다. 반환 될 것이지만 DB에 대한 캐싱 및 계속 액세스를 무시할 수도 있으므로 성능이 저하 될 수 있습니다.

이전에 이런 유형의 문제를 처리 한 사람이 있습니까? 좋은 접근 방식이 무엇인지 아는 사람이 있습니까?

감사합니다.

+0

이런 식으로 구현 한 적이 없지만 pubsubhubbub 솔루션이 도움이 될 것으로 생각합니다. http://code.google.com/p/pubsubhubbub/ –

+0

루카스 감사합니다. 꽤 필요한 것처럼 보입니다. 아마도 내 질문을 잘 설명하지 못했을 것입니다. 그러나 Hibernate에서 데이터 모델에 의한 피드를 생성 할 것이고 Hibernate 객체를 규칙적으로 처리하여 피드를 만드는 방법을 찾고 싶습니다. . – rhinds

답변

0

이 여기 지금 이전이지만, 내가 이것을 위해 한 일이다

  1. Activity을 확장 라이브 벽에 나타납니다 모든 작업 (이 이미 경우)
  2. 를 새로 작성 Notification 개체 인 경우 Notification에는 기본 Activity에 대한 링크와 사용자 (알림 대상)에 대한 링크가 있습니다. 이

를 들어합니다 (Activity를 지속 한 사용자가 다음 모든 사용자) 관심이있는 모든 사용자에 대해 이런 짓을 -

  • 는 지속되는 Activity에 대한 Notification 객체를 생성 Activity에 대한 후크를 사전 지속 Zoom_out 개월 순간에, Notifications DB에 지속/검색 - 가능성이 매우 높은 볼륨으로 확장 할 수 있지만 큐 기반 시스템 (예 : LinkedIn's Kafka queue library이 목적을 위해 정확하게 설계된)으로 이동하는 것을 지원한다고 생각하는 접근법. 또한 사용자별로 볼 때 중요한 알림에 대해 읽음/읽지 않음 알림 플래그를 갖는 옵션을 제공합니다.