spring-boot - 通量或 Flux in spring webflux
问题描述
这是场景
a) 平板电脑使用 http GET 从另一个系统获取用户信息
b)其他系统也可以添加/删除/更新用户信息,操作结果应及时显示在平板电脑上。
为了解决这个问题,我使用 reactor+sse 作为演示代码如下所示
在控制器中
@GetMapping
public Flux<List<User>> listUser() {
return service.listUser();
}
在役
public Flux<List<User>> listUser() {
Flux<List<User>> flux = Flux.generate(
() -> 0,
(state, sink) -> {
synchronized(users) {
users.wait();//other thread will notify with all users info is send to service
}
sink.next(users);
newData = false;
return state + 1;
});
return flux;
}
我的问题是,
a) 我应该使用 Flux<User> 来代替 Flux<List<User>> 吗?到目前为止,我没有看到 Flux<List<T>> 的任何用法。还有一个优点是使用 Flux<User>,我不需要将所有用户信息推送到平板电脑,只需添加/删除/更新。
b)如果我使用 Flux<List<User>,我应该在下面的代码中为 bodyToFlux 的参数写什么
webClient.get()
.uri("/user")
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToFlux() //???
解决方案
推荐阅读
- php - 如何在laravel中搜索具有数组属性的对象数组
- vb.net - 如何在 VB.net 中动态编译代码?动态检索成员变量名
- python - 使用黄砖库的预测误差图问题(回归)
- java - 休眠。如何将条目添加到具有来自 Hibernate 中 2 个不同表的 2 个外键的表中?
- php - 尝试将 php-cgi.exe 文件链接到 PHP 管理器扩展时出现 IIS 错误:“由于对象的当前状态,操作无效”
- windows - ElementsProject 无法编译?
- django - 简化 Django 查询注解
- django - 为什么表中的数据没有在 django 中接收?
- java - Mockito 测试抛出异常的 void 方法。Spring Boot、Eclipse IDE
- node.js - 从外部 .json 文件加载默认数据并存储到 MongoDB