第一点:
CRON triggers
-
CronTrigger trigger = TriggerBuilder.newTrigger()
-
.withIdentity(name, TRIGGER_GROUP)
-
.withSchedule(
-
CronScheduleBuilder.cronSchedule(time)
-
.withMisfireHandlingInstructionDoNothing())
-
.build();// 触发器名,触发器组,触发器时间设定
withMisfireHandlingInstructionDoNothing(所有的misfire不管,执行下一个周期的任务)
在quartz.properties配置文件中添加:
#这个时间大于10000(10秒)会导致MISFIRE_INSTRUCTION_DO_NOTHING不起作用。
org.quartz.jobStore.misfireThreshold = 1000
第二点:
配置文件中添加:jobStore
org.quartz.scheduler.instanceName = DatartScheduleCluster org.quartz.threadPool.threadCount = 10 org.quartz.threadPool.threadPriority = 5 org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.dataSource = myDS org.quartz.jobStore.useProperties = true org.quartz.jobStore.misfireThreshold = 1000 org.quartz.jobStore.isClustered = true org.quartz.jobStore.clusterCheckinInterval = 5000 org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver org.quartz.dataSource.myDS.URL = jdbc:mysql://172.29.60.145:3306:3306/datart?characterEncoding=utf-8&useSSL=false # mysql8.0+ÒÔÉÏ°æ±¾ÅäÖà # org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz?characterEncoding=utf-8&useSSL=false&serverTimezone = GMT org.quartz.dataSource.myDS.user = root org.quartz.dataSource.myDS.password = 123456 org.quartz.dataSource.myDS.maxConnections = 5 //这个一定要加 spring.quartz.job-store-type= jdbc
第三个pom中添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency>