Class MdcContextExecutorService
java.lang.Object
java.util.concurrent.AbstractExecutorService
br.ufsc.labsec.utils.mdc.MdcContextExecutorService
- All Implemented Interfaces:
AutoCloseable, Executor, ExecutorService
Um
ExecutorService que atua como um Decorator para propagar automaticamente
o contexto MDC para as tarefas submetidas.
Ele envolve (como wrapper) qualquer Runnable ou Callable submetido com uma
implementação que preserva o contexto, garantindo que os logs gerados dentro da tarefa
assíncrona contenham as informações de diagnóstico (como requestId) da thread pai.
Esta implementação é simplificada e decora apenas os métodos mais comuns.
-
Constructor Summary
ConstructorsConstructorDescriptionMdcContextExecutorService(ExecutorService delegate) Constrói um novo MdcContextExecutorService. -
Method Summary
Modifier and TypeMethodDescriptionbooleanawaitTermination(long timeout, TimeUnit unit) voidExecuta o comando em algum momento no futuro, garantindo a propagação do contexto MDC.booleanbooleanvoidshutdown()Future<?> Submete uma tarefaRunnablepara execução e retorna umFuturerepresentando essa tarefa.Methods inherited from class AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submitMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ExecutorService
close
-
Constructor Details
-
MdcContextExecutorService
Constrói um novo MdcContextExecutorService.- Parameters:
delegate- OExecutorServicereal para o qual as chamadas serão delegadas após o tratamento do contexto MDC.
-
-
Method Details
-
execute
Executa o comando em algum momento no futuro, garantindo a propagação do contexto MDC.- Parameters:
command- oRunnablea ser executado.
-
submit
Submete uma tarefaRunnablepara execução e retorna umFuturerepresentando essa tarefa. O contexto MDC é propagado para a tarefa.- Specified by:
submitin interfaceExecutorService- Overrides:
submitin classAbstractExecutorService- Parameters:
task- a tarefa a ser submetida.- Returns:
- um
Futurerepresentando a conclusão pendente da tarefa.
-
shutdown
public void shutdown() -
shutdownNow
-
isShutdown
public boolean isShutdown() -
isTerminated
public boolean isTerminated() -
awaitTermination
- Throws:
InterruptedException
-