public class SimpleTaskWorkManager extends Object implements WorkManager
WorkManager implementation that
 delegates to a Spring TaskExecutor.
 Provides simple task execution including start timeouts, but without support
 for a JCA ExecutionContext (i.e. without support for imported transactions).
 Uses a SyncTaskExecutor for doWork(javax.resource.spi.work.Work)
 calls and a SimpleAsyncTaskExecutor
 for startWork(javax.resource.spi.work.Work) and scheduleWork(javax.resource.spi.work.Work) calls, by default.
 These default task executors can be overridden through configuration.
 
NOTE: This WorkManager does not provide thread pooling by default!
 Specify a org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
 (or any other thread-pooling TaskExecutor) as "asyncTaskExecutor" in order to
 achieve actual thread pooling.
 
This WorkManager automatically detects a specified
 AsyncTaskExecutor implementation
 and uses its extended timeout functionality where appropriate.
 JCA WorkListeners are fully supported in any case.
setSyncTaskExecutor(org.springframework.core.task.TaskExecutor), 
setAsyncTaskExecutor(org.springframework.core.task.AsyncTaskExecutor)IMMEDIATE, INDEFINITE, UNKNOWN| Constructor and Description | 
|---|
| SimpleTaskWorkManager() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | doWork(Work work) | 
| void | doWork(Work work,
      long startTimeout,
      ExecutionContext executionContext,
      WorkListener workListener) | 
| protected long | executeWork(org.springframework.core.task.TaskExecutor taskExecutor,
           Work work,
           long startTimeout,
           boolean blockUntilStarted,
           ExecutionContext executionContext,
           WorkListener workListener)Execute the given Work on the specified TaskExecutor. | 
| void | scheduleWork(Work work) | 
| void | scheduleWork(Work work,
            long startTimeout,
            ExecutionContext executionContext,
            WorkListener workListener) | 
| void | setAsyncTaskExecutor(org.springframework.core.task.AsyncTaskExecutor asyncTaskExecutor)Specify the TaskExecutor to use for asynchronous work execution
 (i.e. | 
| void | setSyncTaskExecutor(org.springframework.core.task.TaskExecutor syncTaskExecutor)Specify the TaskExecutor to use for synchronous work execution
 (i.e. | 
| long | startWork(Work work) | 
| long | startWork(Work work,
         long startTimeout,
         ExecutionContext executionContext,
         WorkListener workListener) | 
public void setSyncTaskExecutor(org.springframework.core.task.TaskExecutor syncTaskExecutor)
doWork(javax.resource.spi.work.Work) calls).
 Default is a SyncTaskExecutor.
public void setAsyncTaskExecutor(org.springframework.core.task.AsyncTaskExecutor asyncTaskExecutor)
startWork(javax.resource.spi.work.Work) and scheduleWork(javax.resource.spi.work.Work) calls).
 This will typically (but not necessarily) be an
 AsyncTaskExecutor implementation.
 Default is a SimpleAsyncTaskExecutor.
public void doWork(Work work) throws WorkException
doWork in interface WorkManagerWorkExceptionpublic void doWork(Work work, long startTimeout, @Nullable ExecutionContext executionContext, @Nullable WorkListener workListener) throws WorkException
doWork in interface WorkManagerWorkExceptionpublic long startWork(Work work) throws WorkException
startWork in interface WorkManagerWorkExceptionpublic long startWork(Work work, long startTimeout, @Nullable ExecutionContext executionContext, @Nullable WorkListener workListener) throws WorkException
startWork in interface WorkManagerWorkExceptionpublic void scheduleWork(Work work) throws WorkException
scheduleWork in interface WorkManagerWorkExceptionpublic void scheduleWork(Work work, long startTimeout, @Nullable ExecutionContext executionContext, @Nullable WorkListener workListener) throws WorkException
scheduleWork in interface WorkManagerWorkExceptionprotected long executeWork(org.springframework.core.task.TaskExecutor taskExecutor,
                           Work work,
                           long startTimeout,
                           boolean blockUntilStarted,
                           @Nullable
                           ExecutionContext executionContext,
                           @Nullable
                           WorkListener workListener)
                    throws WorkException
taskExecutor - the TaskExecutor to usework - the Work to executestartTimeout - the time duration within which the Work is supposed to startblockUntilStarted - whether to block until the Work has startedexecutionContext - the JCA ExecutionContext for the given WorkworkListener - the WorkListener to clal for the given WorkWorkException - if the TaskExecutor did not accept the Work