springboot使用 @EnableScheduling、@Scheduled开启定时任务
2024-10-06 10:01:58
1.在main启动项添加一个注解@EnableScheduling
package com.example.springmybatis; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling
@SpringBootApplication
//@MapperScan("com.example.springmybatis.dao")
public class SpringMybatisApplication { public static void main(String[] args) {
SpringApplication.run(SpringMybatisApplication.class, args);
}
}
2.在类中添加@Component,方法上添加@Scheduled
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; @Component
public class SchedulerTask {
//想要开启定时任务,必须在启动页加上@EnableScheduling
@Scheduled(cron="30 10 1 * * ?")
public void aTask(){
try {
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date())+"*********A任务每20秒执行一次进入测试");
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.cron表达式含义:
* 0 0 10,14,16 * * ?每天上午10点、下午两点、下午4点整触发
0 0/30 9-17 * * ? 每天朝九晚五内每隔半小时触发
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 0/5 * * * ?每5分钟触发
10 0/5 * * * ?每隔5分钟的第10秒触发(即10:00:10、10:05:10、10:10:10等)
30 * * * * ? 每半分钟触发
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秒触发
最新文章
- jdbc java数据库连接 10)批处理
- HTTP返回码中301与302的区别 (转载)
- 【转】slice,substr和substring的区别
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- SQL 删除存在于A表但是不存在B表中的记录
- HDU5807 Keep In Touch DP
- html页面高度不同浏览器兼容性设置
- 可解压带中文名称文件的zip包
- javascript prompt示例
- leetcode[71] Sqrt(x)
- MVC 项目中又一新方法实现依懒注入 (AutoFac)
- PLA-1
- 单节点etcd配置
- Google guava cache源码解析1--构建缓存器(3)
- Ubuntu下ibus在firefox浏览器中选中即删除的解决办法
- Open Flash Chart 之线图
- 《TCP/IP 详解 卷1:协议》第 11 章:名称解析和域名系统
- python模拟websocket握手过程中计算sec-websocket-accept
- [笔记] centos6.6编译安装httpd2.4.10
热门文章
- Apache 80端口可以访问,8080却不可访问
- 1、Java小白之路前言
- 算法与数据结构基础 - 位运算(Bit Manipulation)
- JS闪电打字特效
- (十五)c#Winform自定义控件-键盘(二)
- html5新特性-header,nav,footer,aside,article,section等各元素的详解
- 腾讯PCG(后台开发) 牛客网视频面试 一面
- (三)(1)线程间通信---wait和notify的使用
- DRF (Django REST framework) 中的视图类
- Ubuntu安装时出现“failed to load ldlinux.c32”