有限源上的反应流保持未来事件打开
我正在使用Spring Webflux,Spring Data和Project Reactor进行非阻塞I/O(Spring Boot 2.0.0.M7)。有限源上的反应流保持未来事件打开
我的目标是创建一个类似股票代码的API,以允许客户端根据某些条件从端点请求所有资源,并接收在初始请求之后创建的新资源。 Reactive MongoDB是后备存储。基本的HandlerFunction
实现如下所示。
Mono<ServerResponse> getFoos(ServerRequest request) { ok().contentType(TEXT_EVENT_STREAM)
.body(fooRepository.findAll(), Foo)
}
显然,这只是返回所有Foos
当前可用,那么Publisher
关闭连接,并没有新的Foos
被发送到客户端。我的问题是用什么样的模式来添加一个无限的流到这个可以接受新条目?
- 的毗连与一些全球
Publisher Bean
我写新Foos
为他们创造 - 添加
onComplete
其重新订阅到Repository
(有一些标准来筛选重复的条目) - 使用
repeat
,让客户端过滤副本 - 还有其他?
回答:
如果相应地配置您的MongoDB集合(它必须为上限),你可以使用tailable光标达到你想要什么,只需添加上你的储存库@Tailable
注解。请参阅Spring Data MongoDB reference documentation about infinite streams。
以上是 有限源上的反应流保持未来事件打开 的全部内容, 来源链接: utcz.com/qa/265726.html