打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring中使用注解 @Scheduled执行定时任务

    注解@Scheduled 可以作为一个触发源添加到一个方法中,例如,以下的方法将以一个固定延迟时间5秒钟调用一次执行,这个周期是以上一个调用任务的完成时间为基准,在上一个任务完成之后,5s后再次执行:

1
2
3
4
@Scheduled(fixedDelay=5000)
public void doSomething() {    
    // something that should execute periodically
}

    

    如果需要以固定速率执行,只要将注解中指定的属性名称改成fixedRate即可,以下方法将以一个固定速率5s来调用一次执行,这个周期是以上一个任务开始时间为基准,从上一任务开始执行后5s再次调用:

1
2
3
4
@Scheduled(fixedRate=5000)
public void doSomething() {
    // something that should execute periodically
}


    对于固定延迟和固定速率的任务,可以指定一个初始延迟表示该方法在第一被调用执行之前等待的毫秒数:

1
2
3
4
@Scheduled(initialDelay=1000, fixedRate=5000)
public void doSomething() {    
    // something that should execute periodically
}


    如果简单的定期调度不能满足,那么cron表达式提供了可能。例如,下面的方法将只会在工作日执行:

1
2
3
4
@Scheduled(cron="*/5 * * * * MON-FRI")
public void doSomething() {    
    // something that should execute on weekdays only
}


    还可以通过使用zone属性来指定cron表达式被调用的时区。

 

注意:

  1、spring的注解@Scheduled  需要写在实现方法上;

  2、定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true),不能指向任何的参数;

  3、如果该方法需要与应用程序上下文的其他对象进行交互,通常是通过依赖注入来实现;

  4、实现类上要有组件的注解@Component。



参考文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#scheduling-annotation-support-scheduled


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Spring Boot 如何快速实现定时任务
并发编程:使用任务执行器和调度器,任务执行器和调度器实战经验
SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)
微服务架构Day12-SpringBoot之任务
Spring 注解定时器
springboot(九):定时任务
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服