spring - Spring Cloud Dataflow 聚合拆分列表
问题描述
我正在尝试使用 SCDF 来拆分和聚合我的列表。但我无法按预期聚合。
我的 SCDF 每分钟都被 rabbitmq 上的一个列表提供。假设我有一个由以下对象组成的列表:
[{"foo" : "11", "bar" : "21"},{"foo" : "11", "bar" : "22"},{"foo" : "12", "bar" : "23"}]
我将数组拆分为拆分器中的对象:app.splitter.expression=#jsonPath(payload,'$.[*]')
并且它按预期工作。
在聚合器中,我想根据 property 的值聚合它们foo
,这样聚合的结果应该是两个不同的数组,例如:
[{"foo" : "11", "bar" : "21"},{"foo" : "11", "bar" : "22"}]
[{"foo" : "12", "bar" : "23"}]
我设置correlation
为:app.aggregator.correlation=#jsonPath(payload,'$.foo')
但我不知道如何设置release
SpEL 表达式。
你能告诉我应该如何设置release
吗?
PS:作为一种解决方法,我尝试将最后一个对象添加到列表中以检测它是列表的末尾。所以,我将{{"foo" : "EoS"}
对象添加到列表中。在release
我尝试过:app.aggregator.release=!messages.?[new String(payload).contains("EoS")].empty
但它没有用。
解决方案
推荐阅读
- c++ - 在多文件项目中重新定义“int main()”。C++
- android - Pixel3a 手机上 opencv 4.5.0 android-sdk 的链接错误
- java - 在java字符串中的运算符前后添加空格
- c++ - remove() 遇到问题
- javascript - 我的 switch 语句有问题。继续使用默认值
- sharepoint - 此页面的安全验证无效并且可能已损坏。请使用您的网络浏览器的返回按钮再次尝试您的操作
- python - 过滤数据帧子集的更有效方法
- nuxt.js - 如何在 Nuxt 的组合 API 中使用 vuex 地图助手
- mysql - 如果在过去 10 天内更新了任何 TimeEntries,则条件 SQL 查询将相关任务的所有 TimeEntires 相加
- php - 即使通过应用密码进行身份验证,Yandex 电子邮件帐户也会被阻止