1

비 차단 I/O (Spring Boot 2.0.0.M7) 용으로 Spring Webflux, Spring Data 및 Project Reactor를 사용하고 있습니다.유한 소스의 반응성 스트림이 향후 이벤트를 위해 열려 있습니다.

내 목표는 클라이언트가 일부 기준에 따라 엔드 포인트에서 모든 자원을 요청할 수 있도록 주식 시세와 같은 API를 작성하고 초기 요청 후에 작성된 새 자원을 수신하는 것입니다. Reactive MongoDB는 백업 저장소입니다. 기본 HandlerFunction 구현은 다음과 같습니다.

Mono<ServerResponse> getFoos(ServerRequest request) { 
    ok().contentType(TEXT_EVENT_STREAM) 
      .body(fooRepository.findAll(), Foo) 
} 

는 물론, 이것은 단지 모두 현재 사용할 수있는 Foos은 다음 Publisher가 연결을 닫고 새로운 Foos가 클라이언트로 전송되지 않습니다 반환합니다. 내 질문은이 패턴에 무한 스트림을 추가하여 새로운 항목을 받아 들일 수있는 패턴에 관한 것입니다. 나는 새로운 Foos 그들이

  • 사용 repeat을 (중복 항목을 필터링 할 몇 가지 기준)에 Repository에 재 구독하는 onComplete를 추가하고 클라이언트를 수 있도록 만들어으로 쓰기 일부 글로벌 Publisher Bean

    1. CONCAT 중복 필터
    2. 다른 건 없나요?
  • 답변

    1

    당신이 (이 덮인되어야한다), 당신은 당신의 저장소에 @Tailable 주석을 추가, 당신이 원하는 것을 달성하기 위해 tailable 커서를 사용할 수 있습니다 그에 따라 MongoDB를 수집을 구성합니다. Spring Data MongoDB reference documentation about infinite streams을 참조하십시오.

    +0

    이에 대한 후속 질문입니다. 즉,이 작업을 수행하려면 별도의 콜렉션 (Capped)을 만들어야합니다. – pvpkiran

    +0

    컬렉션을 실제로 처리해야합니다. 이것이 MongoDB에서이 기능을 사용할 수있는 조건입니다. –

    +0

    감사합니다. MongoDB를 처음 접했고 Mongo 관련 문서 섹션을 읽지 않았습니다. – JudgingNotJudging

    관련 문제