Package org.apache.polaris.service.task
Class TaskExecutorImpl
java.lang.Object
org.apache.polaris.service.task.TaskExecutorImpl
- All Implemented Interfaces:
TaskExecutor
Given a list of registered
TaskHandlers, execute tasks asynchronously with the provided
CallContext.-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTaskExecutorImpl(Executor executor, jakarta.enterprise.inject.Instance<org.apache.commons.lang3.function.TriConsumer<Long, Boolean, Throwable>> errorHandler, Clock clock, org.apache.polaris.core.persistence.MetaStoreManagerFactory metaStoreManagerFactory, TaskFileIOSupplier fileIOSupplier, RealmContextHolder realmContextHolder, PolarisEventDispatcher polarisEventDispatcher, PolarisEventMetadataFactory eventMetadataFactory, @Nullable io.opentelemetry.api.trace.Tracer tracer, PolarisPrincipalHolder polarisPrincipalHolder, org.apache.polaris.core.auth.PolarisPrincipal polarisPrincipal) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTaskHandler(TaskHandler taskHandler) Add aTaskHandler.voidaddTaskHandlerContext(long taskEntityId, org.apache.polaris.core.context.CallContext callContext) Register aCallContextfor a specific task id.protected voidhandleTask(long taskEntityId, org.apache.polaris.core.context.CallContext ctx, PolarisEventMetadata eventMetadata, int attempt) protected voidhandleTaskWithTracing(String realmId, long taskEntityId, org.apache.polaris.core.context.CallContext callContext, org.apache.polaris.core.auth.PolarisPrincipal principal, PolarisEventMetadata eventMetadata, int attempt) voidinit()
-
Constructor Details
-
TaskExecutorImpl
protected TaskExecutorImpl() -
TaskExecutorImpl
@Inject public TaskExecutorImpl(@Identifier("task-executor") Executor executor, @Identifier("task-error-handler") jakarta.enterprise.inject.Instance<org.apache.commons.lang3.function.TriConsumer<Long, Boolean, Throwable>> errorHandler, Clock clock, org.apache.polaris.core.persistence.MetaStoreManagerFactory metaStoreManagerFactory, TaskFileIOSupplier fileIOSupplier, RealmContextHolder realmContextHolder, PolarisEventDispatcher polarisEventDispatcher, PolarisEventMetadataFactory eventMetadataFactory, @Nullable io.opentelemetry.api.trace.Tracer tracer, PolarisPrincipalHolder polarisPrincipalHolder, org.apache.polaris.core.auth.PolarisPrincipal polarisPrincipal)
-
-
Method Details
-
init
public void init() -
addTaskHandler
Add aTaskHandler.TaskEntitys will be tested against theTaskHandler.canHandleTask(TaskEntity)method and will be handled by the first handler that responds true. -
addTaskHandlerContext
public void addTaskHandlerContext(long taskEntityId, org.apache.polaris.core.context.CallContext callContext) Register aCallContextfor a specific task id. That task will be loaded and executed asynchronously with a clone of the providedCallContext.- Specified by:
addTaskHandlerContextin interfaceTaskExecutor
-
handleTask
protected void handleTask(long taskEntityId, org.apache.polaris.core.context.CallContext ctx, PolarisEventMetadata eventMetadata, int attempt) -
handleTaskWithTracing
@ActivateRequestContext protected void handleTaskWithTracing(String realmId, long taskEntityId, org.apache.polaris.core.context.CallContext callContext, org.apache.polaris.core.auth.PolarisPrincipal principal, PolarisEventMetadata eventMetadata, int attempt)
-