Interface TaskWrapper


public interface TaskWrapper
A TaskWrapper is a facility to wrap Runnable background tasks before they are passed to the Executor. Use-cases include injection of thread-local context variables, or more fine-granular error handling.

All sub-queries sent by the federation engine that make use of the concurrency infrastructure (e.g. ControlledWorkerScheduler) are passing this wrapper.

The concrete implementation can be configured using FedXConfig.withTaskWrapper(TaskWrapper).

Author:
Andreas Schwarte
See Also:
  • Method Details

    • wrap

      Runnable wrap(Runnable runnable)
      Wrap the given Runnable and add custom logic.

      Use cases include injection of state into the thread-local context, or more fine granular error handling.

      Note that when modifying state in ThreadLocal it must be reset properly in a try/finally block.

      Parameters:
      runnable - the task as generated by the FedX engine
      Returns:
      the wrapped Runnable
    • wrap

      <T> Callable<T> wrap(Callable<T> callable)
      Wrap the given Callable and add custom logic.

      Use cases include injection of state into the thread-local context, or more fine granular error handling.

      Note that when modifying state in ThreadLocal it must be reset properly in a try/finally block.

      Parameters:
      callable - the task as generated by the FedX engine
      Returns:
      the wrapped Callable