如何解决如何使用“Multi”流解析 JPQL resultList() 的输出以将单个项目发送到主题而不是整个列表对象
尝试创建一个将事件列表发送到 kafka 主题的反应式方法(使用 @Outgoing 注释)
例如
@Outgoing("kafkatopic01")
public Multi<List<Thing>> poll() {
return Multi.createFrom()
.ticks()
.every(Duration.ofSeconds(10))
.onOverflow().drop()
.map(tick -> (List<Things>) ds.getData())
[...]
“ds.getData()” - 在上面的例子中 - 返回一个事件列表(“Thing”) - 从 JPQL 命名查询 - 发送到一个主题。
问题:我如何编写上述代码...
"return Multi.createFrom()..."
...这样返回的列表不是作为单个对象发送到“@Outgoing”主题?
换句话说,我如何修改上面的“Multi”流,以便“Thing”事件列表单独发送,而不是作为单个对象发送
卡夫卡 夸克 1.11.0.CR1 爪哇11
解决方法
看起来这个“.onItem().disjoint()”完成了我正在寻找的......
return Multi.createFrom()
.ticks()
.every(Duration.ofSeconds(10))
.onOverflow().drop()
.map(tick -> {
List<Thing> list = (List<Thing>) polldata.get(time.get("datetime").atZone(ZoneId.of("America/New_York")));
time.put("datetime",(list.size() == 0 ? time.get("datetime") : Instant.now()));
return list;
})
.onItem()
.<Thing>disjoint();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。