Java定时任务解决方案
2018-08-17 09:40:16来源:博客园 阅读 ()
很多项目中都会遇到需要定时任务的情况,本篇文章就结合了Spring中以及SpringBoot、SpringCloud中定时任务的解决方案。
在Spring中使用定时器
用SpringBoot比较多的同学可能都会觉得Spring的xml配置确实比较麻烦,如果想在Spring中使用定时器的话其实是必须使用xml配置文件的。
- 引入task约束
1
|
http://www.springframework.org/schema/task
|
- 开启注解
1
|
<task:scheduler id="Scheduler" pool-size="10"/>
|
- 以注解的方式使用
在项目中使用时定时任务的类必须由Spring来管理,所以我们给这个类加上一个@Component注解
1
|
@Component
|
@Scheduled注解呢,就是表示启用定时任务,括号里的cron的值呢,其实就是一种表达式,就像上边的例子呢就是表示每分钟执行一次。(文章最后会有cron的详细用法介绍哦)
在SpringBoot和SpringCloud中使用定时器
在SpringBoot中使用的话相比较于Spring中就简单明了多了,一起来看一下吧。
-
引入task
灰常简单,启动类增加一个注解@EnableScheduling完事 -
使用
和Spring的使用方式一样,这里就不多做介绍了。1
2
3
4
5
6
7
8
9
10
11@Component
public class Task {
/**
*每分钟执行一次
*/
@Scheduled(cron = "0 0/1 * * * ?")
public void test(){
System.out.println("task定时任务");
}
}
优雅的初始化定时器
有的时候我们的定时任务可能几个小时需要执行一次。但是呢,我们可能会需要一些初始值。(假如说我们需要一些缓存,不想每次查询缓存都去判断的话我们就可以先在项目启动时就查询出来,然后定时刷新)如果把这个值的初始化过程放在类的构造方法中感觉岂不是太low了,那么有没有别的办法呢?
@PostConstruct注解,这个注解呢,可以在Spring加载这个类的时候执行一次,完美的解决我们上方所说的问题
1
|
|
cron表达式详解
来看一下如何使用cron表达式如何使用的吧
语法
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
年份(1970-2099)
-区间
*通配符
? 你不想设置那个字段
demo
注意下方*之间有空格
“0 0 1 ? ** ” 每天凌晨1点触发
“0 30 1 ? ** ” 每天凌晨1:30触发
“30 30 1 ? ** ” 每天凌晨1:30:30触发
“30 30 1 ** ? 2018” 2018年的每天凌晨1:30:30触发
“0 0/1 *** ?” 每分钟触发 一次
“0 0 0/1 ** ?” 每小时触发一次
“0 15 10 ? * MON-FRI” 周一到周五的10:15触发
如果觉得会用的到的话可以收藏转载哦!
本文出自http://zhixiang.org.cn,转载请保留。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:mybatis
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash