如何在Quartz Job实例的日志消息中添加请求标识符?

问题描述

我们使用SDC4J使用MDC在Spring Boot应用程序中向HTTP请求添加请求ID。

我们通过添加GenericFilterBean来实现此目的,该拦截器将拦截请求,将其转换为HTTTP,然后将所需的信息写入MDC.put(...);

例如在使用crontrigger启动作业的QuartzJob上执行此操作的正确模式是什么?还是Spring Batch作业?

解决方法

我通过添加 JobExecutionListenerSpring Batch 解决了这个问题,类似于您使用 GenericFilterBean 为 HTTP 所做的。

beforeJob()你可以做MDC.put(...);,在afterJob()你可以做MDC.remove(...);

此外,我添加了一个 TaskDecorator 以在多线程作业的情况下将 DMC 从父线程复制到子线程。

您可以在此处找到更详细的代码答案: https://stackoverflow.com/a/68347374/6837191