public class AbortableTaskDecorator extends Object implements TaskDecorator
Constructor and Description |
---|
AbortableTaskDecorator(ThreadPoolTaskExecutor taskExecutor,
ScheduledThreadPoolExecutor timeoutExecutor)
Construct an instance.
|
public AbortableTaskDecorator(ThreadPoolTaskExecutor taskExecutor, ScheduledThreadPoolExecutor timeoutExecutor)
public Runnable decorate(Runnable runnable)
We create a new AbortableTaskRunnable
that holds the current thread's MDC. This is for logging purposes, so that logging
within the runnable
is done with the correct logging context. For instance, the transaction id is logged and the current
user etc.
Next to this, we create an schedule a TimeoutGuardTask
. This task will stop the runnable we're decorating if the configured
timeout has lapsed.
The AbortableTaskRunnable
will stop the execution of the TimeoutGuardTask
after it completes.
decorate
in interface TaskDecorator