springboot+quartz以持久化的方式实现定时任务的代码以持久化的方式实现定时任务的代码
主要介绍了springboot+quartz以持久化的方式实现定时任务的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有
一定的参考借鉴价值,需要的朋友可以参考下
这篇文章给大家介绍springboot+quartz以持久化的方式实现定时任务,详情如下所示:
篇幅较长,耐心的人总能得到最后的答案小生第一次用quartz做定时任务,不足之处多多谅解。
首先首先
在springboot项目里做定时任务是比较简单的,最简单的实现方式是使用**@Scheduled注解,然后在application启动类上使用@EnableScheduling**开启定时任
务。
示例
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
// cron为每秒执行一次
@Scheduled(cron = "* * * * * ?")
public void print(){
System.out.println("执行定时任务");
}
}
######结果
执行定时任务
执行定时任务
执行定时任务
执行定时任务
执行定时任务
执行定时任务
执行定时任务
执行定时任务
简单的定时任务就可以用这种方式来做,cron表达式的结果为任务执行的间隔时间。
然而然而
实际开发中,我们的任务可能有很多,且需要手动操作单个/全部的任务,比如添加、开启、停止、继续等等操作。那么伴随着(千牛B类。。。)的BGM有请
quartz登场。
quartz
整合
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
quartz的三要素的三要素
调度器Scheduler
启动触发器去执行任务
触发器Trigger
用来定义Job(任务)触发条件、触发时间,触发间隔,终止时间等
任务任务job
具体要执行的任务内容
使用使用
使用quartz是需要配置文件的,quartz.properties在quartz的jar包的org.quartz包下可以找到默认的配置文件quartz.properties
# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#
# 名字
org.quartz.scheduler.instanceName: DefaultQuartzScheduler
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false
# 实例化ThreadPool时,使用的线程类为SimpleThreadPool
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
# 线程总个数
org.quartz.threadPool.threadCount: 10
# 线程的优先级
org.quartz.threadPool.threadPriority: 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
org.quartz.jobStore.misfireThreshold: 60000
# 持久化方式,默认持久化在内存中,后面我们使用db的方式
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
quartz任务持久化到db则需要一些官方定义的数据库表,表的sql文件可以在quartz的jar包里找到
评论0