博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调度任务(五)
阅读量:7260 次
发布时间:2019-06-29

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

构建工程

创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务。

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableScheduling
public 
class 
SpringbootSchedulingTasksApplication {
 
    
public 
static 
void 
main(String[] args) {
        
SpringApplication.run(SpringbootSchedulingTasksApplication.
class
, args);
    
}
}

  

创建定时任务

创建一个定时任务,每过5s在控制台打印当前时间。

1
2
3
4
5
6
7
8
9
10
11
12
@Component
public 
class 
ScheduledTasks {
 
    
private 
static 
final 
Logger log = LoggerFactory.getLogger(ScheduledTasks.
class
);
 
    
private 
static 
final 
SimpleDateFormat dateFormat = 
new 
SimpleDateFormat(
"HH:mm:ss"
);
 
    
@Scheduled
(fixedRate = 
5000
)
    
public 
void 
reportCurrentTime() {
        
log.info(
"The time is now {}"
, dateFormat.format(
new 
Date()));
    
}
}

  

通过在方法上加@Scheduled注解,表明该方法是一个调度任务。

  • @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
  • @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
  • @Scheduled(cron=” /5 “) :通过cron表达式定义规则,什么是cro表达式,自行搜索引擎。

测试

启动springboot工程,控制台没过5s就打印出了当前的时间。

1
2
3
4
2017
-
04
-
29 
17
:
39
:
37.672 
INFO 
677 
— [pool-
1
-thread-
1
] com.forezp.task.ScheduledTasks : The time is now 
17
:
39
:
37
2017
-
04
-
29 
17
:
39
:
42.671 
INFO 
677 
— [pool-
1
-thread-
1
] com.forezp.task.ScheduledTasks : The time is now 
17
:
39
:
42
2017
-
04
-
29 
17
:
39
:
47.672 
INFO 
677 
— [pool-
1
-thread-
1
] com.forezp.task.ScheduledTasks : The time is now 
17
:
39
:
47
2017
-
04
-
29 
17
:
39
:
52.675 
INFO 
677 
— [pool-
1
-thread-
1
] com.forezp.task.ScheduledTasks : The time is now 
17
:
39
:
52

  

在springboot创建定时任务只需2步:

  • 1.在程序的入口加上@EnableScheduling注解。
  • 2.在定时方法上加@Scheduled注解。

转载于:https://www.cnblogs.com/MaxElephant/p/10231959.html

你可能感兴趣的文章
xcode如何删除老版本
查看>>
如何在centOS等一些linux系统下安装oracle sqldeveloper图形化数据库操作界面
查看>>
Android Studio编译慢、卡死和狂占内存怎么破?
查看>>
关于工作效率
查看>>
修改IT资产库存管理(ITDB)使用mysql数据库
查看>>
使用ecgo框架编写demo
查看>>
mybatis if判断,数字问题
查看>>
安装centos7出现问题
查看>>
什么?你还不会写JQuery 插件
查看>>
【js与jquery】左侧导航模块的显示与隐藏效果
查看>>
session多服务器共享的方案梳理
查看>>
腾讯通改了服务器IP地址后,只能发送即时消息,不能发送文件
查看>>
MariaDB/Mysql 忘记密码 重置root密码
查看>>
android 中断点续传理解
查看>>
git的使用
查看>>
HashCode与equals方法的区别与联系
查看>>
WeUi
查看>>
让crond以秒为单位执行任务的方法
查看>>
java并发编程之:原子性操作类
查看>>
如何在.net自定义控件引用外部资源
查看>>