博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot实现定时任务@EnableScheduling
阅读量:3684 次
发布时间:2019-05-21

本文共 1471 字,大约阅读时间需要 4 分钟。

来源:http://blog.csdn.net/weixin_42949841/article/details/108695570

1. 新建项目,在pom.xml导入必要的依赖。

  
        
org.springframework.boot
        
spring-boot-starter-parent
        
2.0.1.RELEASE
    
    
        
        
            
org.springframework.boot
            
spring-boot-starter-web
        
    

2. 写一个SpringBoot的启动类

  • 启动类里面使用@EnableScheduling 注解开启定时任务功能。

@SpringBootApplication@EnableScheduling@MapperScan("com.less.parent.dao")public class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }}

3. 编写定时任务

  • 要在任务的类上写@Component,将当前的任务类注入到容器。

  • 要在任务方法上写@Scheduled,然后编写cron表达式。

@Componentpublic class SchedulingTask {        //表示每隔3秒    // @Scheduled(fixedRate = 3000)        // 表示方法执行完成后5秒    // @Scheduled(fixedDelay = 5000)        // 表示每五秒执行一次    @Scheduled(cron = "*/5 * * * * ?")    public void TestTask() {        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        System.out.println(dateFormat.format(new Date()));    }}

4. 执行结果

2020-09-20 17:20:352020-09-20 17:20:402020-09-20 17:20:45

5. 总结

  • fixedDelay和fixedRate,单位是毫秒,这里这里就是5秒和3秒,它们的区别就是:fixedRate就是每多次分钟一次,不论你业务执行花费了多少时间。我都是1分钟执行1次,而fixedDelay是当任务执行完毕后1分钟在执行。所以根据实际业务不同,我们会选择不同的方式。

  • cron表达式:比如你要设置每天什么时候执行,就可以用它不会写的话,网上有专门的语法,可以单独去查。

-END-SSM框架权限系统脚手架教程(资料全)加我微信回复“SSM框架权限”即可获取点个在看!????谢谢支持哟 (*^__^*)
你可能感兴趣的文章
变量内存的存储,数据类型转换,数据类型自动转换,强制类型转换,默认数据类型转换
查看>>
运算符,复制运算符,自增,自减,++,--,==,!=,+拼接字符串,三元运算符,比较运算符
查看>>
流程控制,卫语句,调试程序,ifelse
查看>>
scanner实现用户登陆功能,Scanner从控制台获取用户输入的数据
查看>>
scanner输入各种类型的数据,Scanner下next()和nextLine()的区别,nextInt()后读取空后跟nextLine()
查看>>
==和equals区别,scanner类new出String类型变量与自定义Sting比较数据内容和地址值
查看>>
自动赋值变量写好右半部分之后.var自动补全变量来承接得到的值。if...else if...else...
查看>>
switch条件选择结构,switch可以用于那些类型数据的判断,return和break
查看>>
while下有scanner循环比对,直至输入满足条件终止循环,equals,韩梅梅do...while不断努力走向chengg
查看>>
利用while循环结构,给定班级人数scanner动态录入成绩计算平均值
查看>>
循环结构,while,do...while,do...while具体实例
查看>>
for循环打印99乘法表,for循环寻找100以内的偶数个数并求和,程序中空格\t
查看>>
设置用户登陆,用户有3次机会输入账号密码,账号密码输入正确则打印输出99乘法表,流程控制语句关键字break和continue,结束方法体return,continue
查看>>
打印三角形,字符串比较,Math.pow,水仙花数,菱形,while对折达到珠穆朗马蜂高度,输出乘数列,scanner,input,输入条件判断是否循环,do...while,顺序分支循环
查看>>
数组,数组越界异常,增强for循环,数组索引,循环遍历数组,利用数组动态输入学生成绩,循环遍历输出数组内容
查看>>
操作数组元素,数组赋值,卫语句,==,Array.equals(数组1,数组2),equals,循环遍历输出数组元素,增强for遍历输出元素,switch,if..else..,比较数组元素是否一致
查看>>
动态录入学生个数,录入每个数组元素,并求出数组元素的最值以及平均值
查看>>
复制数组元素,合并两个已知数组,String数组类型,增强for循环,native,Array.copyof()扩容数组创建新数组,合并数组,Array类的方法对数组进行截断或者扩容
查看>>
Array类,Array.copyof截断和扩容创建新数组,数组引用,copyof其实也是new出了一个新的内存空间
查看>>
删除数组元素,空指针问题
查看>>