@PublicApi public class ExecutorServiceExecutionStrategy extends ExecutionStrategy
ExecutorServiceExecutionStrategy uses an ExecutorService
to parallelize the resolve.
execute(ExecutionContext, ExecutionStrategyParameters)
implementation, ExecutorService
MUST have the following 2 characteristics:
ThreadPoolExecutor
MUST have a reasonable maximumPoolSize
ThreadPoolExecutor
SHALL NOT use its task queue.
Failure to follow 1. and 2. can result in a very large number of threads created or hanging. (deadlock)
Seegraphql.execution.ExecutorServiceExecutionStrategyTest
for example usage.dataFetcherExceptionHandler, fieldCollector, valuesResolver
Constructor and Description |
---|
ExecutorServiceExecutionStrategy(java.util.concurrent.ExecutorService executorService) |
ExecutorServiceExecutionStrategy(java.util.concurrent.ExecutorService executorService,
DataFetcherExceptionHandler dataFetcherExceptionHandler) |
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.CompletableFuture<ExecutionResult> |
execute(ExecutionContext executionContext,
ExecutionStrategyParameters parameters)
This is the entry point to an execution strategy.
|
assertNonNullFieldPrecondition, assertNonNullFieldPrecondition, completeField, completeValue, completeValueForEnum, completeValueForList, completeValueForList, completeValueForObject, completeValueForScalar, fetchField, fieldTypeInfo, getFieldDef, getFieldDef, handleNonNullException, resolveField, resolveType, resolveTypeForInterface, resolveTypeForUnion, toIterable, toIterable, unboxPossibleOptional
public ExecutorServiceExecutionStrategy(java.util.concurrent.ExecutorService executorService)
public ExecutorServiceExecutionStrategy(java.util.concurrent.ExecutorService executorService, DataFetcherExceptionHandler dataFetcherExceptionHandler)
public java.util.concurrent.CompletableFuture<ExecutionResult> execute(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
ExecutionStrategy
execute
in class ExecutionStrategy
executionContext
- contains the top level execution parametersparameters
- contains the parameters holding the fields to be executed and source objectExecutionResult