当前位置: 首页 > 知识库问答 >
问题:

Sleuth traceId无法在Quartz作业中传播

高砚
2023-03-14

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

示例:当我通常调用controller时,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...

共有1个答案

微生昌胤
2023-03-14

我通过升级到spring-boot-starter-parent2.3.0.release,使用spring-cloud-dependenciesHoxton.sr5解决了这个问题

 类似资料:
  • Job1在org.eko.businessjobs.Job1.doperform(Job1.java:23)在org.eko.jobs.businessjoba.executeinternal(businessjoba.java:34)在org.springframework.scheduling.quartz.quartzjobbean.execute(quartzjobbean.java:75

  • 我在grails中使用服务,并从控制器中的服务获取和设置数据,没有问题。我知道如何使用它。。。但是这个问题我解决不了,如果你知道出了什么问题,请帮助我。 有一个QuartzWork,我从控制器的服务时间表...数据存储在PostgreSQL中。使用所有插件和2.3.3 Grails的最新版本。在下面的代码中,我只想打印昵称,但我无法获得服务。试图得到豆,def grailsApplication但

  • 我使用的是spring boot,我有一个从数据库中存储/检索一些数据的服务。我想使用一个石英工作使用我的服务。我从网上尝试了很多建议,想把石英和spring boot整合起来,但都不奏效。 这是我的代码: 1)我添加了org.quartz-scheduler作为pom.xml中的依赖项: 2)这是我的应用程序。配置为将mysql用作我的服务的数据库的属性: 3)这是我的服务: 4)调度程序类:

  • 如果有其他的方法来配置jHipster中的石英作业,请告诉我。或者,如果jHipster为调度程序工作提供了开箱即用的功能,那就太好了。 石英作业依赖关系