Spring Boot教程(五)调度任务

Stella981
• 阅读 604

构建工程

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

@SpringBootApplication
@EnableScheduling
public class SpringbootSchedulingTasksApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootSchedulingTasksApplication.class, args);
    }
}

创建定时任务

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

@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就打印出了当前的时间。

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注解。

Spring Boot教程(五)调度任务 源码来源

点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java目前可以通过以下几种方式进行定时任务
1、单机部署模式Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。
Stella981 Stella981
3年前
Spring Schedule整合配置
SpringSchedule是spring提供的任务调度框架。很简单,也很强大,简单是因为只需要在spring配置文件中写一行代码配置一下。就ok,强大是因为调度表达式。这里会给出一个网站,在线生成,满足你各种所需。看代码在spring的配置文件中加上下面这个代码://约束xmlns:task"http://www.sprin
Stella981 Stella981
3年前
SpringBoot学习笔记:计划任务
SpringBoot学习笔记:计划任务计划任务在企业的实践生产中,可能需要使用一些定时任务,如月末、季末和年末需要统计各种各样的报表,每周自动备份数据等。在Spring中使用定时任务1、加入@EnableScheduling注解,以启用定时任务机制@EnableS
Stella981 Stella981
3年前
Spring Boot 集成 XXL
在开发中需要将已有的定时任务抽离出来,方便管理查看,因此选择集成分布式任务调度平台XXLJOB,本文就讲解下SpringBoot如何集成XXLJOB任务调度平台。XXLJOB简介XXLJOB是一个分布式任务调度平
Easter79 Easter79
3年前
Spring的业务层和Web层
任务调度  quartz框架  quartz框架实现了Spring的任务调度,用户可以随意的定义触发器调度时间表,并将触发器和任务进行映射。quartz通过调度器、触发器和任务实现任务调度。  Job:主要用来设计任务实现的逻辑,并且只有一个方法execute。  JobDetail:主要用来通过newInst
Stella981 Stella981
3年前
SpringBoot 开启关闭自动任务配置(EnableScheduling )
Removed@EnableSchedulingannotationfrommyappAddedanewconfigurationclassandconditionaltoenable/disableschedulingbasedonanapplicationproperty\@Co
Easter79 Easter79
3年前
SpringBoot学习笔记:计划任务
SpringBoot学习笔记:计划任务计划任务在企业的实践生产中,可能需要使用一些定时任务,如月末、季末和年末需要统计各种各样的报表,每周自动备份数据等。在Spring中使用定时任务1、加入@EnableScheduling注解,以启用定时任务机制@EnableS
Stella981 Stella981
3年前
SpringBoot集成Schedule任务调度
一、前言:微服务应用中可能会涉及到多个定时任务跨服务同时执行,这里就会涉及到线程生命周期和一致性问题,任务调度器本质上还是单独启动的线程执行,但是生命周期不会随应用的停止而销毁,所以本篇内容只涉及当前应用执行定时任务1、配置启动类!(https://static.oschina.net/uploads/space/2018/060
Easter79 Easter79
3年前
SpringBoot集成Schedule任务调度
一、前言:微服务应用中可能会涉及到多个定时任务跨服务同时执行,这里就会涉及到线程生命周期和一致性问题,任务调度器本质上还是单独启动的线程执行,但是生命周期不会随应用的停止而销毁,所以本篇内容只涉及当前应用执行定时任务1、配置启动类!(https://static.oschina.net/uploads/space/2018/060