我有一种方法,可以将请求分批发送给api并建立结果列表。
public Map<Long, Metadata> loadAll(Iterable<? extends Long> keys)
throws Exception {
List<Long> keyList = Lists.newArrayList(keys);
List<DTO> dtos = new ArrayList<>();
int from = 0, to=0 ;
for(int count=0; count <= keyList.size(); ) {
count += batchSize;
to = (count > keyList.size() ? keyList.size() : count);
dtos.addAll(search.getDTOs(keyList.subList(from, to)));
from = to;
}
Map<Long, Metadata> map =
dtos.stream().collect(Collectors.toMap(DTO::getId, MetadataLoader::convertToLocalObject));
return map;
}
我想知道是否可以使用Observable.range(....