java -cyclops-react:ReactiveSeq上没有批处理功能吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java -cyclops-react:ReactiveSeq上没有批处理功能吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1686字,纯文字阅读大概需要3分钟。
内容图文
使用cyclops-react 1.0.0-RC3,我尝试通过批处理在cyclops-react streams user guide上重新创建示例.我发现ReactiveSeq中缺少一些方法,包括batchBySize和windowByTime.
我确实在StreamUtils上找到了这些方法,并且它们按预期方式工作,但看上去不像用户指南中的示例那么巧妙……
从用户指南…
// Example 19. Batch by size example
ReactiveSeq.of(1,2,3,4,5, 6)
.map(n-> n==6? sleep(1) : n)
.batchBySize(4) // this function seems to be missing...
.toList()
我能得到的工作…
import com.aol.cyclops.control.ReactiveSeq;
// ...
StreamUtils.batchBySize(
ReactiveSeq.of(1, 2, 3, 4, 5, 6)
.map(n -> TestUtils.mayBeSlow(n)),
4)
.collect(Collectors.toList());
您可以在testBatchingSlidingWindowing方法测试类StreamsTest.java的工作JUnit中看到我的代码
我应该期望在ReactiveSeq上找到batchBySize和windowByTime还是使用StreamUtils适当的方式?
解决方法:
使用分组代替.它适用于所有与独眼巨人反应的Traversable类型(例如ListX,SetX,QueueX,DequeX,ReactiveSeq等).所以你的例子将成为
ReactiveSeq.of(1,2,3,4,5, 6)
.map(n-> n==6? sleep(1) : n)
.grouped(4)
.toList()
groupedXXX运算符的行为类似于batchByXXX和windowByXXX,它们通过扩展的Collection类型提供对分组数据的访问,该扩展类型本身具有所有可遍历的&可折叠运算符.
例如.加倍组成员/批处理列表
ReactiveSeq.of(1,2,3,4,5, 6)
.map(n-> n==6? sleep(1) : n)
.grouped(4)
.map(list-> list.map(i->i*2))
.toList()
您还可以使用groupedT返回一个ListTransformer. ListTransformers允许您像嵌套结构一样操作嵌套结构.
例如.加倍使用groupedT的组/批处理列表的成员
ReactiveSeq.of(1,2,3,4,5, 6)
.map(n-> n==6? sleep(1) : n)
.groupedT(4)
.map(i->i*2);
并将ListTransformer转换回列表流
ListTSeq<Integer> listT = ReactiveSeq.of(1,2,3,4,5, 6)
.map(n-> n==6? sleep(1) : n)
.groupedT(4);
ReactiveSeq<ListX<Integer>> nested = listT.toNestedListX()
.stream();
内容总结
以上是互联网集市为您收集整理的java -cyclops-react:ReactiveSeq上没有批处理功能吗?全部内容,希望文章能够帮你解决java -cyclops-react:ReactiveSeq上没有批处理功能吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。