网站建设客户沟通模块,换服务器后网站首页不收录,泉州网官网,商城网站源码大全文章目录知识讲解相关注释#xff08;主要两个,EnableScheduling和Scheduled#xff09;scheduled的cron语法代码项目目录结构启动类#xff08;Application#xff09;定时任务类(Task)配置类#xff08;application.properties#xff09;pom依赖展望#xff08;Quart…
文章目录知识讲解相关注释主要两个,EnableScheduling和Scheduledscheduled的cron语法代码项目目录结构启动类Application定时任务类(Task)配置类application.propertiespom依赖展望Quartz知识讲解
相关注释主要两个,EnableScheduling和Scheduled
EnableScheduling注解 在配置类上使用开启计划任务的支持类上。 Scheduled注解 来声明这是一个任务包括 cronfixDelayfixRate 等类型方法上需先开启计划任务的支持。 注 可以为Scheduled注解的方法再用PostConstruct注释该注解的作用时刚启动SpringBoot项目时就执行该方法
scheduled的cron语法
经典案例
“1 * * * * ?” 每一分钟触发一次任务
“30 10 * * * ?” 每小时的10分30秒触发任务
“30 10 1 * * ?” 每天1点10分30秒触发任务
“30 10 1 20 * ?” 每月20号1点10分30秒触发任务
“30 10 1 20 10 ? *” 每年10月20号1点10分30秒触发任务
“30 10 1 20 10 ? 2011” 2011年10月20号1点10分30秒触发任务
“30 10 1 ? 10 * 2011” 2011年10月每天1点10分30秒触发任务
“30 10 1 ? 10 SUN 2011” 2011年10月每周日1点10分30秒触发任务
“15,30,45 * * * * ?” 每15秒30秒45秒时触发任务
“15-45 * * * * ?” 15到45秒内每秒都触发任务
“15/5 * * * * ?” 每分钟的每15秒开始触发每隔5秒触发一次
“15-30/5 * * * * ?” 每分钟的15秒到30秒之间开始触发每隔5秒触发一次
“0 0/3 * * * ?” 每小时的第0分0秒开始每三分钟触发一次
“0 15 10 ? * MON-FRI” 星期一到星期五的10点15分0秒触发任务
“0 15 10 L * ?” 每个月最后一天的10点15分0秒触发任务
“0 15 10 LW * ?” 每个月最后一个工作日的10点15分0秒触发任务
“0 15 10 ? * 5L” 每个月最后一个星期四的10点15分0秒触发任务
“0 15 10 ? * 5#3” 每个月第三周的星期四的10点15分0秒触发任务
感谢大佬原链接如下
例子链接https://blog.csdn.net/qq_39361915/article/details/113507521具体语法详见此篇文档的3、cron表达式
代码
项目目录结构 启动类Application
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;SpringBootApplication
EnableScheduling//按照时间cron对象的频率执行所有Scheduled注释的方法
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}定时任务类(Task)
package nju.software;import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;Component
public class Task {Scheduled(cron 1 * * * * ?)//每1分钟执行一次该方法PostConstruct//刚启动SpringBoot项目时就执行该方法public void task1(){System.out.println(执行定时任务);}}
配置类application.properties
server.port 8191
server.ip 127.0.0.1pom依赖
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.4/versionrelativePath/ !-- lookup parent from repository --
/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies展望Quartz
目前此种标识只能实现单线程定时任务如果需要多线程的定时任务需要借助Quartz框架实现。等待未来使用到再写教程