首页 > 解决方案 > Springboot Quartz:构建两个调度器(本地和集群)

问题描述

我不清楚哪个是我需要设置调度程序属性的地方。

我需要配置两个调度器:

如何为我的本地和集群调度程序设置另一个属性?

spring:
  datasource:
    ...
  quartz:
    job-store-type: jdbc
    properties:
      org.quartz.jobStore.isClustered: true
      org.quartz.scheduler.instanceId: AUTO

标签: spring-bootquartz-schedulerquartz

解决方案


要仅运行作业的一个实例,您必须在创建 JobDetail 之前在 Job 类上添加注释 @DisallowConcurrentExecution。在这种情况下,JobDetail 将在 DB 中标记为 Is_clustered。否则,如果您在添加注释之前创建 JobDetail,则 JobDetail 保持非集群状态。所以我看到了一个解决方案,在使用 JDBC 作业存储时分离作业并用注释标记它们。


推荐阅读