// 极力保证key不重复
result.put(easyRandom.nextObject(String.class) + RandomUtils.nextInt(), easyRandom.nextInt()); return result;
}
注意:
1 判空
.filter(Objects::nonNull)
这里非常重要,避免又一次调用返回 null,而导致空指针异常。
2 实际使用时可以结合apollo配置, 灵活设置每批执行的数量,如果超时随时调整
3 用到的类库
集合工具类: commons-collections4、guava (可以不用)
这里的list划分子list也可以使用stream的 skip ,limit特性自己去做,集合判空也可以不借助collectionutils.
构造数据:easy-random
单元测试框架: Junit4 、 powermockito、mockito
4 大家可以加一些更强大的功能,如允许设置每次调用的时间间隔、并行或并发调用等。
三、改进
以上面的List接口为例,将其改为异步版本:
public static T, V List V partitionCall2ListAsync(List T dataList, int size, ExecutorService executorService, Function List T , List V function) { if (CollectionUtils.isEmpty(dataList)) { return new ArrayList (0); Preconditions.checkArgument(size 0, "size must not be a minus"); List CompletableFuture List V completableFutures = Lists.partition(dataList, size) .stream() .map(eachList - { if (executorService == null) { return CompletableFuture.supplyAsync(() - function.apply(eachList)); } else { return CompletableFuture.supplyAsync(() - function.apply(eachList), executorService); .collect(Collectors.toList());
本文转自网络,原文链接:https://developer.aliyun.com/article/787278
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
新基建下,产业互联网、5G基站建设、城际高速铁路和城际轨道交通、新能源汽车充...
实例 云端的虚拟计算资源,可理解为轻量应用服务器,包括 CPU、操作系统、网络、...
注册域名 会过期吗?注册 域名 是会过期的。注册域名是按照年限为单位,可以注册...
简介 我们知道REST是一种架构方式 它只是指定了六种需要遵循的基本原则 但是它指...
ASP.Net Core 是微软开源的跨平台、可扩展、轻量级的模块化框架,可用于构建高性...
什么是循环 在编程中,循环意味着以相同的顺序多次重复同一组计算。 想想现实生...
近日,据业内消息,资深 域名 投资人戴跃通过经纪人中介拿下了efang.com。 通过 ...
TOP云 (west.cn)11月15日消息,今天早上,小编接到米友曝料,称此前通过TOP云...
2月份GitHub上最热门的Python开源项目排行已经出炉啦,这个月和币圈相关的开源项...
随着云计算、5G、大数据、人工智能等新兴技术飞速发展,数据中心规模不断扩大,传...