У меня есть @Repository
чтение из источника данных в реальном времени.Я делаю данные доступными, используя Flux.create() { sink->sink.next() }
A @Service
выполняет следующее:
@Autowired MyRepository myRepository;
@PostConstruct() public void startUp() {
ConnectableFlux<Object> cf = myRepository.flux.publish();
cf.subscribe(System.out::println);
cf.connect();
}
Это работает и печатает данные, но я не получить "Нетти запущен" в журналах и @Controllers
не отвечают.Если я опущу cf.connect()
, Netty запускается.Поэтому я предполагаю, что cf.connect()
блокирует Netty.
В идеале, я хочу, чтобы подписка запускалась автоматически.Использование connect()
в @PostConstuct
слишком рано?Должен ли я прослушивать событие «Netty Started», тогда connect(),
или моя подписка просто неверна?
Редактировать: Если connect
запущен в пределах Thread
, Netty запускается и подпискаработает.