RateLimit rateLimit = RateLimit.timeInterval(1, TimeUnit.SECONDS);
private void executeScroll(SearchResponse initialSearchResponse, ResultHandler<? super E> handler, EntityDescriptor entityDescriptor) { SearchResponse searchResponse = initialSearchResponse; TaskContext ctx = TaskContext.get(); RateLimit rateLimit = RateLimit.timeInterval(1, TimeUnit.SECONDS); long lastScroll = 0; Limit lim = new Limit(start, limit); while (true) { lastScroll = performScrollMonitoring(lastScroll); for (SearchHit hit : searchResponse.getHits()) { if (!processHit(handler, entityDescriptor, ctx, rateLimit, lim, hit)) { return; } } if (searchResponse.getHits().getHits().length == 0) { return; } searchResponse = scrollFurther(entityDescriptor, searchResponse.getScrollId()); } }
try { TaskContext ctx = TaskContext.get(); RateLimit rateLimit = RateLimit.timeInterval(1, TimeUnit.SECONDS); Limit effectiveLimit = new Limit(skip, limit); scrollResponse = executeScroll(entity -> {