public class WebAsyncTask<V> extends java.lang.Object implements BeanFactoryAware
Callable
, a timeout value, and a task executor.Constructor and Description |
---|
WebAsyncTask(java.util.concurrent.Callable<V> callable)
Create a
WebAsyncTask wrapping the given Callable . |
WebAsyncTask(java.lang.Long timeout,
AsyncTaskExecutor executor,
java.util.concurrent.Callable<V> callable)
Create a
WebAsyncTask with a timeout value, an executor instance, and a Callable. |
WebAsyncTask(long timeout,
java.util.concurrent.Callable<V> callable)
Create a
WebAsyncTask with a timeout value and a Callable . |
WebAsyncTask(java.lang.Long timeout,
java.lang.String executorName,
java.util.concurrent.Callable<V> callable)
Create a
WebAsyncTask with a timeout value, an executor name, and a Callable . |
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.Callable<?> |
getCallable()
Return the
Callable to use for concurrent handling (never null ). |
AsyncTaskExecutor |
getExecutor()
Return the AsyncTaskExecutor to use for concurrent handling,
or
null if none specified. |
java.lang.Long |
getTimeout()
Return the timeout value in milliseconds, or
null if no timeout is set. |
void |
onCompletion(java.lang.Runnable callback)
Register code to invoke when the async request completes.
|
void |
onError(java.util.concurrent.Callable<V> callback)
Register code to invoke for an error during async request processing.
|
void |
onTimeout(java.util.concurrent.Callable<V> callback)
Register code to invoke when the async request times out.
|
void |
setBeanFactory(BeanFactory beanFactory)
A
BeanFactory to use for resolving an executor name. |
public WebAsyncTask(java.util.concurrent.Callable<V> callable)
WebAsyncTask
wrapping the given Callable
.callable
- the callable for concurrent handlingpublic WebAsyncTask(long timeout, java.util.concurrent.Callable<V> callable)
WebAsyncTask
with a timeout value and a Callable
.timeout
- a timeout value in millisecondscallable
- the callable for concurrent handlingpublic WebAsyncTask(@Nullable java.lang.Long timeout, java.lang.String executorName, java.util.concurrent.Callable<V> callable)
WebAsyncTask
with a timeout value, an executor name, and a Callable
.timeout
- timeout value in milliseconds; ignored if null
executorName
- the name of an executor bean to usecallable
- the callable for concurrent handlingpublic WebAsyncTask(@Nullable java.lang.Long timeout, AsyncTaskExecutor executor, java.util.concurrent.Callable<V> callable)
WebAsyncTask
with a timeout value, an executor instance, and a Callable.timeout
- timeout value in milliseconds; ignored if null
executor
- the executor to usecallable
- the callable for concurrent handlingpublic java.util.concurrent.Callable<?> getCallable()
Callable
to use for concurrent handling (never null
).@Nullable public java.lang.Long getTimeout()
null
if no timeout is set.public void setBeanFactory(BeanFactory beanFactory)
BeanFactory
to use for resolving an executor name.
This factory reference will automatically be set when
WebAsyncTask
is used within a Spring MVC controller.
setBeanFactory
in interface BeanFactoryAware
beanFactory
- owning BeanFactory (never null
).
The bean can immediately call methods on the factory.BeanInitializationException
@Nullable public AsyncTaskExecutor getExecutor()
null
if none specified.public void onTimeout(java.util.concurrent.Callable<V> callback)
This method is called from a container thread when an async request times
out before the Callable
has completed. The callback is executed in
the same thread and therefore should return without blocking. It may return
an alternative value to use, including an Exception
or return
RESULT_NONE
.
public void onError(java.util.concurrent.Callable<V> callback)
This method is called from a container thread when an error occurred
while processing an async request before the Callable
has
completed. The callback is executed in the same thread and therefore
should return without blocking. It may return an alternative value to
use, including an Exception
or return
RESULT_NONE
.
public void onCompletion(java.lang.Runnable callback)
This method is called from a container thread when an async request completed for any reason, including timeout and network error.