Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
定时的任务的的框架的也是非常常见的需求。
需求:
1.定时器选型
设计思路
定时器分别对应的最简单的就是:
使用cron 表达式做处理
实现思路分析
1.corn 表达式
这个是最常见的使用,也是我14 年接触做cosp 的时候,完成的。
秒 分钟 小时 日 月
星期 年
主要是corn 表达式的使用
2.数据库式样的定时器
数据库定时器的将表达式封装在内部,了
quartzs
通过job的方式完成定时器的设置,也是在2015年遇到的。
定义触发器Trigger并与job绑定
@Scheduled注解是最简单的方式,只需要启用定时器,在方法上添加注解即可。
在spring配置中加入:
1
2
3
4
5
6
7
8
<task:annotation-driven />
在要具体的方法上加入注解@Scheduled
@Scheduled(cron = "0 0 * * * ? ")
public void myTask(){
//定时任务…
}
timer scher:
使用Timer的schedule,schedule有3个参数:
schedule(TimerTask task, long delay, long period)
第一个为定时任务,根据业务需要重写TimerTask的run方法即可;
第二个为延时启动,单位毫秒;
第三个位多久运行一次,单位毫秒;
使用线程:
使用线程来控制就更灵活一些,可以根据自己的需要判断什么时候运行,什么时候停止,这需要对java的线程有一定的了解。
拓展实现
这里参考:github:简单实现上述流程:
入门级实现:
: 部分源码实现.
: 源码实现
性能参数测试:
无
参考资料和推荐阅读
- 推荐阅读.
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~