Package org.apache.camel.util.concurrent
Class RejectableScheduledThreadPoolExecutor
java.lang.Object
java.util.concurrent.AbstractExecutorService
java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ScheduledThreadPoolExecutor
org.apache.camel.util.concurrent.RejectableScheduledThreadPoolExecutor
- All Implemented Interfaces:
Executor
,ExecutorService
,ScheduledExecutorService
Scheduled thread pool executor that creates
RejectableFutureTask
instead of
FutureTask
when registering new tasks for execution.
Instances of RejectableFutureTask
are required to handle ThreadPoolRejectedPolicy.Abort
policies
correctly, e.g. notify Callable
and Runnable
tasks when they are rejected. To be notified of
rejection tasks have to implement Rejectable
interface:
public class RejectableTask implements Runnable, Rejectable {
@Override
public void run() {
// execute task
}
@Override
public void reject() {
// do something useful on rejection
}
}
If the task does not implement Rejectable
interface the behavior is exactly the same as with ordinary
ScheduledThreadPoolExecutor
.-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
Constructor Summary
ConstructorDescriptionRejectableScheduledThreadPoolExecutor
(int corePoolSize) RejectableScheduledThreadPoolExecutor
(int corePoolSize, RejectedExecutionHandler handler) RejectableScheduledThreadPoolExecutor
(int corePoolSize, ThreadFactory threadFactory) RejectableScheduledThreadPoolExecutor
(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler) -
Method Summary
Modifier and TypeMethodDescriptionprotected <T> RunnableFuture<T>
newTaskFor
(Runnable runnable, T value) protected <T> RunnableFuture<T>
newTaskFor
(Callable<T> callable) toString()
Methods inherited from class java.util.concurrent.ScheduledThreadPoolExecutor
decorateTask, decorateTask, execute, getContinueExistingPeriodicTasksAfterShutdownPolicy, getExecuteExistingDelayedTasksAfterShutdownPolicy, getQueue, getRemoveOnCancelPolicy, schedule, schedule, scheduleAtFixedRate, scheduleWithFixedDelay, setContinueExistingPeriodicTasksAfterShutdownPolicy, setExecuteExistingDelayedTasksAfterShutdownPolicy, setRemoveOnCancelPolicy, shutdown, shutdownNow, submit, submit, submit
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.concurrent.ExecutorService
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated
-
Constructor Details
-
RejectableScheduledThreadPoolExecutor
-
RejectableScheduledThreadPoolExecutor
-
RejectableScheduledThreadPoolExecutor
-
RejectableScheduledThreadPoolExecutor
public RejectableScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)
-
-
Method Details
-
newTaskFor
- Overrides:
newTaskFor
in classAbstractExecutorService
-
newTaskFor
- Overrides:
newTaskFor
in classAbstractExecutorService
-
toString
- Overrides:
toString
in classThreadPoolExecutor
-