Package org.hawaiiframework.async
Class AbortableTaskDecorator
- java.lang.Object
-
- org.hawaiiframework.async.AbortableTaskDecorator
-
- All Implemented Interfaces:
org.springframework.core.task.TaskDecorator
public class AbortableTaskDecorator extends Object implements org.springframework.core.task.TaskDecorator
Task decorator to copy the MDC from the calling thread to the executing thread..- Since:
- 2.0.0
- Author:
- Rutger Lubbers, Paul Klos
-
-
Constructor Summary
Constructors Constructor Description AbortableTaskDecorator(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor taskExecutor, ScheduledThreadPoolExecutor timeoutExecutor)
Construct an instance.
-
-
-
Constructor Detail
-
AbortableTaskDecorator
public AbortableTaskDecorator(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor taskExecutor, ScheduledThreadPoolExecutor timeoutExecutor)
Construct an instance.
-
-
Method Detail
-
decorate
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 therunnable
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 theTimeoutGuardTask
after it completes.- Specified by:
decorate
in interfaceorg.springframework.core.task.TaskDecorator
-
-