public class TaskService extends Service implements ScheduledExecutorService
Application.getCurrent() still work.wrap(ScheduledExecutorService)
method to ensure that thread local variables are correctly set.| Constructor and Description |
|---|
TaskService()
Constructor.
|
TaskService(boolean enabled)
Constructor.
|
TaskService(boolean enabled,
boolean daemon)
Constructor.
|
TaskService(boolean enabled,
int corePoolSize)
Constructor.
|
TaskService(int corePoolSize)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
awaitTermination(long timeout,
TimeUnit unit)
Blocks until all tasks have completed execution after a shutdown request, or
the timeout occurs, or the current thread is interrupted, whichever happens
first.
|
protected ScheduledExecutorService |
createExecutorService(int corePoolSize)
Creates a new JDK executor service that will be wrapped.
|
protected ThreadFactory |
createThreadFactory()
Creates a new thread factory that will properly name the Restlet created
threads with a "restlet-" prefix.
|
void |
execute(Runnable command)
Executes the given command asynchronously.
|
int |
getCorePoolSize()
Returns the core pool size defining the maximum number of threads.
|
List |
invokeAll(Collection tasks)
Executes the given tasks, returning a list of Futures holding their status
and results when all complete.
Due to a breaking change between Java SE versions 5 and 6, and in order to maintain compatibility both at the source and binary level, we have removed the generic information from this method. |
List |
invokeAll(Collection tasks,
long timeout,
TimeUnit unit)
Executes the given tasks, returning a list of Futures holding their status
and results when all complete or the timeout expires, whichever happens
first.
|
Object |
invokeAny(Collection tasks)
Executes the given tasks, returning the result of one that has completed
successfully (i.e., without throwing an exception), if any do.
|
Object |
invokeAny(Collection tasks,
long timeout,
TimeUnit unit)
Executes the given tasks, returning the result of one that has completed
successfully (i.e., without throwing an exception), if any do before the
given timeout elapses.
|
boolean |
isDaemon()
Indicates whether the threads are created as daemon threads.
|
boolean |
isShutdown()
Returns true if this executor has been shut down.
|
boolean |
isShutdownAllowed()
Indicates if the
shutdown() and shutdownNow() methods are
allowed to effectively shutdown the wrapped executor service. |
boolean |
isTerminated()
Returns true if all tasks have completed following shut down.
|
<V> ScheduledFuture<V> |
schedule(Callable<V> callable,
long delay,
TimeUnit unit)
Creates and executes a ScheduledFuture that becomes enabled after the given
delay.
|
ScheduledFuture<?> |
schedule(Runnable command,
long delay,
TimeUnit unit)
Creates and executes a one-shot action that becomes enabled after the given
delay.
|
ScheduledFuture<?> |
scheduleAtFixedRate(Runnable command,
long initialDelay,
long period,
TimeUnit unit)
Creates and executes a periodic action that becomes enabled first after the
given initial delay, and subsequently with the given period; that is
executions will commence after initialDelay then initialDelay+period, then
initialDelay + 2 * period, and so on.
|
ScheduledFuture<?> |
scheduleWithFixedDelay(Runnable command,
long initialDelay,
long delay,
TimeUnit unit)
Creates and executes a periodic action that becomes enabled first after the
given initial delay, and subsequently with the given delay between the
termination of one execution and the commencement of the next.
|
void |
setCorePoolSize(int corePoolSize)
Sets the core pool size defining the maximum number of threads.
|
void |
setDaemon(boolean daemon)
Indicates whether or not the threads are daemon threads.
|
void |
setShutdownAllowed(boolean allowShutdown)
Indicates if the
shutdown() and shutdownNow() methods are
allowed to effectively shutdown the wrapped executor service. |
void |
shutdown()
Initiates an orderly shutdown in which previously submitted tasks are
executed, but no new tasks will be accepted.
|
List<Runnable> |
shutdownNow()
Attempts to stop all actively executing tasks, halts the processing of
waiting tasks, and returns a list of the tasks that were awaiting execution.
|
void |
start()
Starts the Restlet.
|
void |
stop()
Stops the Restlet.
|
<T> Future<T> |
submit(Callable<T> task)
Submits a value-returning task for execution and returns a Future
representing the pending results of the task.
|
Future<?> |
submit(Runnable task) |
<T> Future<T> |
submit(Runnable task,
T result) |
static ScheduledExecutorService |
wrap(ScheduledExecutorService executorService)
Wraps a JDK executor service to ensure that the threads executing the tasks
will have the thread local variables copied from the calling thread.
|
createInboundFilter, createOutboundFilter, getContext, isEnabled, isStarted, isStopped, setContext, setEnabledpublic TaskService()
public TaskService(boolean enabled)
enabled - True if the service has been enabled.public TaskService(boolean enabled,
boolean daemon)
enabled - True if the service has been enabled.daemon - True if the threads are created as daemon threads.public TaskService(boolean enabled,
int corePoolSize)
enabled - True if the service has been enabled.corePoolSize - The core pool size defining the maximum number of
threads.public TaskService(int corePoolSize)
corePoolSize - The core pool size defining the maximum number of
threads.public static ScheduledExecutorService wrap(ScheduledExecutorService executorService)
Application.getCurrent()
still work.executorService - The JDK service to wrap.public boolean awaitTermination(long timeout,
TimeUnit unit)
throws InterruptedException
awaitTermination in interface ExecutorServicetimeout - The maximum time to wait.unit - The time unit.InterruptedExceptionprotected ScheduledExecutorService createExecutorService(int corePoolSize)
Executors.newCachedThreadPool(ThreadFactory), passing the result of
createThreadFactory() as a parameter.corePoolSize - The core pool size defining the maximum number of
threads.protected ThreadFactory createThreadFactory()
public void execute(Runnable command)
public int getCorePoolSize()
public List invokeAll(Collection tasks) throws InterruptedException
ExecutorService interface for typing details.invokeAll in interface ExecutorServicetasks - The task to execute.InterruptedExceptionpublic List invokeAll(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException
ExecutorService interface for typing details.invokeAll in interface ExecutorServicetasks - The task to execute.timeout - The maximum time to wait.unit - The time unit.InterruptedExceptionpublic Object invokeAny(Collection tasks) throws InterruptedException, ExecutionException
ExecutorService interface for typing details.invokeAny in interface ExecutorServicetasks - The task to execute.InterruptedExceptionExecutionExceptionpublic Object invokeAny(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService interface for typing details.invokeAny in interface ExecutorServicetasks - The task to execute.timeout - The maximum time to wait.unit - The time unit.InterruptedExceptionExecutionExceptionTimeoutExceptionpublic boolean isDaemon()
public boolean isShutdown()
isShutdown in interface ExecutorServicepublic boolean isShutdownAllowed()
shutdown() and shutdownNow() methods are
allowed to effectively shutdown the wrapped executor service. Return false by
default.public boolean isTerminated()
isTerminated in interface ExecutorServicepublic <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
schedule in interface ScheduledExecutorServicecallable - The function to execute.delay - The time from now to delay execution.unit - The time unit of the delay parameter.RejectedExecutionException - if task cannot be scheduled for execution.NullPointerException - if callable is nullpublic ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
schedule in interface ScheduledExecutorServicecommand - The task to execute.delay - The time from now to delay execution.unit - The time unit of the delay parameter.RejectedExecutionException - if task cannot be scheduled for execution.NullPointerException - if command is nullpublic ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
scheduleAtFixedRate in interface ScheduledExecutorServicecommand - The task to execute.initialDelay - The time to delay first execution.period - The period between successive executions.unit - The time unit of the initialDelay and period parametersRejectedExecutionException - if task cannot be scheduled for execution.NullPointerException - if command is nullIllegalArgumentException - if period less than or equal to zero.public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
scheduleWithFixedDelay in interface ScheduledExecutorServicecommand - The task to execute.initialDelay - The time to delay first execution.delay - The delay between the termination of one execution and
the commencement of the next.unit - The time unit of the initialDelay and delay parametersRejectedExecutionException - if task cannot be scheduled for execution.NullPointerException - if command is nullIllegalArgumentException - if delay less than or equal to zero.public void setCorePoolSize(int corePoolSize)
corePoolSize - The core pool size defining the maximum number of
threads.public void setDaemon(boolean daemon)
daemon - True if the threads are daemon threads.public void setShutdownAllowed(boolean allowShutdown)
shutdown() and shutdownNow() methods are
allowed to effectively shutdown the wrapped executor service.allowShutdown - True if shutdown is allowed.public void shutdown()
shutdown in interface ExecutorServicepublic List<Runnable> shutdownNow()
shutdownNow in interface ExecutorServicepublic void start()
throws Exception
Servicepublic <T> Future<T> submit(Callable<T> task)
submit in interface ExecutorServicetask - The task to submit.public Future<?> submit(Runnable task)
submit in interface ExecutorServicetask - The task to submit.public <T> Future<T> submit(Runnable task, T result)
submit in interface ExecutorServicetask - The task to submit.result - The result to return.Copyright © 2005–2025. All rights reserved.