Skip to content

Commit a3231a3

Browse files
add default rate limit divisor
1 parent 6b7ad7c commit a3231a3

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/http/sender/RequestExecutorService.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,19 +349,22 @@ public void execute(
349349
var endpoint = rateLimitEndpointHandlers.computeIfAbsent(serviceName, serviceNameKey -> new ConcurrentHashMap<>())
350350
.computeIfAbsent(taskType, taskTypeKey -> new ConcurrentHashMap<>())
351351
.computeIfAbsent(requestManager.rateLimitGrouping(), (groupingKey -> {
352+
AtomicInteger divisor = Optional.ofNullable(rateLimitDivisors.get(serviceName))
353+
.map(taskMap -> taskMap.get(taskType))
354+
.orElse(new AtomicInteger(1));
352355
var endpointHandler = new RateLimitingEndpointHandler(
353356
Integer.toString(requestManager.rateLimitGrouping().hashCode()),
354357
queueCreator,
355358
settings,
356359
requestSender,
357360
clock,
358-
requestManager.rateLimitSettings(), // Assuming settings might be specific to the request/service
361+
requestManager.rateLimitSettings(),
359362
this::isShutdown,
360363
rateLimiterCreator,
361-
rateLimitDivisors.get(serviceName).get(taskType).get()
364+
divisor.get()
362365
);
363-
endpointHandler.init(); // Initialize the new handler
364-
return endpointHandler; // Return the newly created and initialized handler
366+
endpointHandler.init();
367+
return endpointHandler;
365368
}));
366369

367370
endpoint.enqueue(task);

0 commit comments

Comments
 (0)