SpringBoot任务调度之-Quartz
在SpringBoot中实现定时任务,我常用的有以下两种:
SpringTask:spring自主研发的定时任务工具,并且存在于Spring体系中,不需要添加任何依赖。Quartz:是一个开源的任务调度服务,几乎可以集成到任务Java应用程序中昨天已经介绍了springTask,
今天来介绍Quartz,他是一个强大的开源任务调度工具,可以实现复杂定时任务,使用SprngBoot+Mybatis+Quartz+Swagger实现定时任务的增删改查,启用和停用。
设计Meaven
Mybatis(使用的数据据版本是8.0)使用5.7的会有问题QuartzSwagger
Quartz介绍
Quartz时一个开源的定时任务项目,可以单独使用也可以和应用程序结合使用。Quartz可是常见简单Jobs进行运行,也可以运行上万个复杂的Jobs。
Quartz核心API
Job(任务):是一个接口,里面有一个方法,可以通过实现Job接口定义需要执行的任务Job接口如下:
packageorg.quartz;publicinterfaceJob{publicvoidexecute(JobExecutionContextcontext)throwsJobExecutionException;}
JobDetail:用于创建Job实例
publicclassTestJobimplementsJob{publicTestJob(){}publicvoidexecute(JobExecutionContextcontext)throwsJobExecutionException{System.err.println(TestJobisstartexecuting.);}}publicclassTest{publicstaticvoidmain(String[]args)throwsSchedulerException{JobDetailjob=newJob(HelloJob.class).withIdentity(myJob,group1)//namemyJob,groupgroup1.build();}}
Trigger:触发器,描述触发Job执行的时间触发规则实现类SimpleTrigger和CronTrigger可以通过crom表达式定义出各种复杂的调度方案JobBuilder:用于定义JobDetail实例,用于定义Job实例TriggerBuilder:用于构建Trigger实例Scheduler(调度):表示一个独立的Quartz容器,Trigger和JobDetail可以注册到Scheduler中。
代码实现
添加依赖
dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency!--集成druid连接池--dependencygroupId