Sleuth traceId 无法在 Quartz 作业中传播

Sleuth traceId cannot propagate in Quartz job

我正在使用 spring-boot-starter-quartz 开发一个 Spring 启动项目,最近我添加了 spring-cloud-starter-sleuth 来为每个请求添加 traceId。但是,当作业由系统自动触发时,它不能像在控制器或服务中调用操作时那样传播 traceId。我是否必须自定义 sleuth 日志记录或其他内容才能将 traceId 传播到其他服务?

样本: 当我通常调用控制器时,sleuth 工作正常并且我将 traceId 传播到其他服务

2020-06-03 14:37:02.148 [my-scheduler,1966e2d37a2d7713,1966e2d37a2d7713] JobSchedulerController.startScheduleJob:97 17812 --- [nio-8201-exec-3] c.p.s.controller.JobSchedulerController  : Started scheduler job with id 2

但是,当我的作业被自动触发时,不会传播任何 traceId,因此其他服务也不会有该 traceId。

2020-06-03 14:37:02.219 [my-scheduler,,] JobListener.jobToBeExecuted:30 17812 --- [ryBean_Worker-2] c.p.s.listener.JobListener        : DEFAULT.SampleJob is going to start...

我已经通过升级到 spring-boot-starter-parent 2.3.0.RELEASE 和 spring-cloud-dependencies Hoxton.SR5

解决了这个问题