Class EsExecutors
java.lang.Object
org.elasticsearch.common.util.concurrent.EsExecutors
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ExecutorService
ExecutorService
that executes submitted tasks on the current thread.Setting to manually control the number of allocated processors. -
Method Summary
Modifier and TypeMethodDescriptionstatic int
allocatedProcessors
(Settings settings) Returns the number of allocated processors.static ThreadFactory
daemonThreadFactory
(String namePrefix) static ThreadFactory
daemonThreadFactory
(String nodeName, String namePrefix) static ThreadFactory
daemonThreadFactory
(Settings settings, String namePrefix) static EsThreadPoolExecutor
newFixed
(String name, int size, int queueCapacity, ThreadFactory threadFactory, ThreadContext contextHolder, boolean trackEWMA) static EsThreadPoolExecutor
newScaling
(String name, int min, int max, long keepAliveTime, TimeUnit unit, boolean rejectAfterShutdown, ThreadFactory threadFactory, ThreadContext contextHolder) newSinglePrioritizing
(String name, ThreadFactory threadFactory, ThreadContext contextHolder, ScheduledExecutorService timer, PrioritizedEsThreadPoolExecutor.StarvationWatcher starvationWatcher) static Throwable
rethrowErrors
(Runnable runnable) Checks if the runnable arose from asynchronous submission of a task to an executor.static String
threadName
(String nodeName, String namePrefix) static String
threadName
(Settings settings, String namePrefix)
-
Field Details
-
NODE_PROCESSORS_SETTING
Setting to manually control the number of allocated processors. This setting is used to adjust thread pool sizes per node. The default value isRuntime.availableProcessors()
but should be manually controlled if not all processors on the machine are available to Elasticsearch (e.g., because of CPU limits). -
DIRECT_EXECUTOR_SERVICE
ExecutorService
that executes submitted tasks on the current thread. This executor service does not support being shutdown.
-
-
Method Details
-
allocatedProcessors
Returns the number of allocated processors. Defaults toRuntime.availableProcessors()
but can be overridden by passing aSettings
instance with the keynode.processors
set to the desired value.- Parameters:
settings
- aSettings
instance from which to derive the allocated processors- Returns:
- the number of allocated processors
-
newSinglePrioritizing
public static PrioritizedEsThreadPoolExecutor newSinglePrioritizing(String name, ThreadFactory threadFactory, ThreadContext contextHolder, ScheduledExecutorService timer, PrioritizedEsThreadPoolExecutor.StarvationWatcher starvationWatcher) -
newScaling
public static EsThreadPoolExecutor newScaling(String name, int min, int max, long keepAliveTime, TimeUnit unit, boolean rejectAfterShutdown, ThreadFactory threadFactory, ThreadContext contextHolder) -
newFixed
public static EsThreadPoolExecutor newFixed(String name, int size, int queueCapacity, ThreadFactory threadFactory, ThreadContext contextHolder, boolean trackEWMA) -
rethrowErrors
Checks if the runnable arose from asynchronous submission of a task to an executor. If an uncaught exception was thrown during the execution of this task, we need to inspect this runnable and see if it is an error that should be propagated to the uncaught exception handler.- Parameters:
runnable
- the runnable to inspect, should be a RunnableFuture- Returns:
- non fatal exception or null if no exception.
-
threadName
-
threadName
-
daemonThreadFactory
-
daemonThreadFactory
-
daemonThreadFactory
-