public class TaskService extends Service implements java.util.concurrent.ExecutorService
Application.getCurrent() still work.wrap(ExecutorService) method to ensure
that thread local variables are correctly set.| Constructor and Description |
|---|
TaskService()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
awaitTermination(long timeout,
java.util.concurrent.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 java.util.concurrent.ExecutorService |
createExecutorService()
Creates a new JDK executor service that will be wrapped.
|
protected java.util.concurrent.ThreadFactory |
createThreadFactory()
Creates a new thread factory that will properly name the Restlet created
threads with a "restlet-" prefix.
|
void |
execute(java.lang.Runnable command)
Executes the given command asynchronously.
|
java.util.List |
invokeAll(java.util.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. |
java.util.List |
invokeAll(java.util.Collection tasks,
long timeout,
java.util.concurrent.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.
|
java.lang.Object |
invokeAny(java.util.Collection tasks)
Executes the given tasks, returning the result of one that has completed
successfully (i.e., without throwing an exception), if any do.
|
java.lang.Object |
invokeAny(java.util.Collection tasks,
long timeout,
java.util.concurrent.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 |
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.
|
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.
|
java.util.List<java.lang.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> java.util.concurrent.Future<T> |
submit(java.util.concurrent.Callable<T> task)
Submits a value-returning task for execution and returns a Future
representing the pending results of the task.
|
java.util.concurrent.Future<?> |
submit(java.lang.Runnable task) |
<T> java.util.concurrent.Future<T> |
submit(java.lang.Runnable task,
T result) |
static java.util.concurrent.ExecutorService |
wrap(java.util.concurrent.ExecutorService 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 static java.util.concurrent.ExecutorService wrap(java.util.concurrent.ExecutorService executorService)
Application.getCurrent() still work.executorService - The JDK service to wrap.public boolean awaitTermination(long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
awaitTermination in interface java.util.concurrent.ExecutorServicetimeout - The maximum time to wait.unit - The time unit.java.lang.InterruptedExceptionprotected java.util.concurrent.ExecutorService createExecutorService()
Executors.newCachedThreadPool(ThreadFactory), passing the
result of createThreadFactory() as a parameter.protected java.util.concurrent.ThreadFactory createThreadFactory()
public void execute(java.lang.Runnable command)
execute in interface java.util.concurrent.Executorcommand - The command to execute.public java.util.List invokeAll(java.util.Collection tasks)
throws java.lang.InterruptedException
ExecutorService interface for typing details.invokeAll in interface java.util.concurrent.ExecutorServicetasks - The task to execute.java.lang.InterruptedExceptionpublic java.util.List invokeAll(java.util.Collection tasks,
long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
ExecutorService interface for typing details.invokeAll in interface java.util.concurrent.ExecutorServicetasks - The task to execute.timeout - The maximum time to wait.unit - The time unit.java.lang.InterruptedExceptionpublic java.lang.Object invokeAny(java.util.Collection tasks)
throws java.lang.InterruptedException,
java.util.concurrent.ExecutionException
ExecutorService interface for typing details.invokeAny in interface java.util.concurrent.ExecutorServicetasks - The task to execute.java.lang.InterruptedExceptionjava.util.concurrent.ExecutionExceptionpublic java.lang.Object invokeAny(java.util.Collection tasks,
long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException,
java.util.concurrent.ExecutionException,
java.util.concurrent.TimeoutException
ExecutorService interface for typing details.invokeAny in interface java.util.concurrent.ExecutorServicetasks - The task to execute.timeout - The maximum time to wait.unit - The time unit.java.lang.InterruptedExceptionjava.util.concurrent.ExecutionExceptionjava.util.concurrent.TimeoutExceptionpublic boolean isShutdown()
isShutdown in interface java.util.concurrent.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 java.util.concurrent.ExecutorServicepublic 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 java.util.concurrent.ExecutorServicepublic java.util.List<java.lang.Runnable> shutdownNow()
shutdownNow in interface java.util.concurrent.ExecutorServicepublic void start()
throws java.lang.Exception
Servicepublic void stop()
throws java.lang.Exception
Servicepublic <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
submit in interface java.util.concurrent.ExecutorServicetask - The task to submit.public java.util.concurrent.Future<?> submit(java.lang.Runnable task)
submit in interface java.util.concurrent.ExecutorServicetask - The task to submit.public <T> java.util.concurrent.Future<T> submit(java.lang.Runnable task,
T result)
submit in interface java.util.concurrent.ExecutorServicetask - The task to submit.result - The result to return.Copyright © 2005-2012. All Rights Reserved.