Package br.ufsc.labsec.utils.mdc
Class MdcContextExecutorService
java.lang.Object
java.util.concurrent.AbstractExecutorService
br.ufsc.labsec.utils.mdc.MdcContextExecutorService
- All Implemented Interfaces:
Executor,ExecutorService
public class MdcContextExecutorService extends AbstractExecutorService
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
Constructors Constructor Description MdcContextExecutorService(ExecutorService delegate)Constrói um novo MdcContextExecutorService. -
Method Summary
Modifier and Type Method Description booleanawaitTermination(long timeout, TimeUnit unit)voidexecute(Runnable command)Executa o comando em algum momento no futuro, garantindo a propagação do contexto MDC.booleanisShutdown()booleanisTerminated()voidshutdown()List<Runnable>shutdownNow()Future<?>submit(Runnable task)Submete uma tarefaRunnablepara execução e retorna umFuturerepresentando essa tarefa.Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit
-
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
-