@Override public String getBatchName(RequestGroup group, Batch<RestRequestBatchKey, Response<Object>> batch) { return group.getBatchName(batch); }
@Override public int maxBatchSizeForGroup(RequestGroup group) { return group.getMaxBatchSize(); }
@Override public int keySize(RequestGroup group, RestRequestBatchKey key) { return group.keySize(key); }
@Override public void executeBatch(RequestGroup group, Batch<RestRequestBatchKey, Response<Object>> batch) { if (group instanceof GetRequestGroup) { _batchingMetrics.recordBatchSize(group.getBaseUriTemplate(), batch.batchSize()); } group.executeBatch(_client, batch, _requestContextProvider); }
private <T> Task<Response<T>> createTaskWithTimeout(final String name, final Request<T> request, final RequestContext requestContext, RequestConfig config) { ConfigValue<Long> timeout = config.getTimeoutMs(); Task<Response<T>> requestTask; if (RequestGroup.isBatchable(request, config)) { requestTask = createBatchableTask(name, request, requestContext, config); } else { requestTask = Task.async(name, () -> sendRequest(request, requestContext)); } if (!needApplyTaskTimeout(requestContext, timeout)) { return requestTask; } else { return withTimeout(requestTask, timeout); } }
@Override public RequestGroup classify(RestRequestBatchKey key) { Request<?> request = key.getRequest(); return RequestGroup.fromRequest(request, key.getRequestConfig().getMaxBatchSize().getValue()); }
if (RequestGroup.isBatchable(request, config)) { requestTask = createBatchableTask(name, request, requestContext, config); } else {