Странное поведение Сервер отправляет события с WebFlux - PullRequest
0 голосов
/ 24 февраля 2019

Я новичок в Spring WebFlux.Согласно другим сообщениям stackoverflow, я пытаюсь написать простую реактивную конечную точку, каждую секунду она должна создавать и отправлять новое событие книги.Проблема в том, что он создает только одну книгу, после чего он прекращает создавать объекты, хотя канал потока все еще работает.Это мой код:

Book.java

@Document(collection = "books")
public class Book extends SACDPObject{

  @NotBlank
  private String title;

  private Long test;


  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public Long getTest() {
    return test;
  }

  public void setTest(Long test) {
    this.test = test;
  }

}

NotificationController.java

@Slf4j
@RepositoryRestController
@RequestMapping("/notification")
public class NotificationController {

 @CrossOrigin
  @GetMapping(path = "/books", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
  public Flux<Book> findBooks() {


    Flux<Long> interval = Flux.interval(Duration.ofSeconds(1));
    Flux<Book> tFlux = Flux.fromStream(Stream.generate(()-> new Book()));

    return Flux.zip(interval, tFlux).map(Tuple2::getT2);

  }
}

Для тестирования я использую команды cURL из моей командной строки curl -v http://localhost:8080/notification/books но я вижу только одну книгу, подобную этой:

{
  "created" : "Sun Feb 24 13:57:06 CET 2019",
  "identifier" : "6f793ecc-9f67-4511-87f1-93c1f251e2eb",
  "title" : null,
  "test" : null
}

Где я ошибаюсь?

...