SpringBoot调度

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SpringBoot调度

调度是执⾏特定时间段的任务的过程。Spring Boot为在Spring应⽤程序上编写调度程序提供了很好的⽀持。

Java Cron表达式

Java Cron表达式⽤于配置CronTrigger的实例,它是org.quartz.Trigger的⼦类。有关Java cron表达式的更多信息,请参阅此链接 -

注解⽤于为应⽤程序启⽤调度程序。将此批注添加到主Spring Boot应⽤程序类⽂件中。

@SpringBootApplication

@EnableScheduling

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

Java

注解⽤于在特定时间段内触发调度程序。

@Scheduled(cron = "0 * 9 * * ?")

public void cronJobSch() throws Exception {

}

Java

以下是⼀个⽰例代码,演⽰如何在每天上午9:00开始到每天上午9:59结束执⾏任务。

package com.yiibai.demo.scheduler;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;

import ponent;

@Component

public class Scheduler {

@Scheduled(cron = "0 * 9 * * ?")

public void cronJobSch() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

Date now = new Date();

String strDate = sdf.format(now);

System.out.println("Java cron job expression:: " + strDate);

}

}

Java

以下屏幕截图显⽰了应⽤程序如何在09:03:23启动,并且从那时起每隔⼀分钟执⾏⼀次cron作业调度程序任务。

固定速率

固定速率调度程序⽤于在特定时间执⾏任务。它不等待前⼀个任务的完成。值是以毫秒为单位。⽰例代码显⽰在此处 -

@Scheduled(fixedRate = 1000)

public void fixedRateSch() {

}

Java

此处显⽰了应⽤程序启动时每秒执⾏任务的⽰例代码 -

package com.yiibai.demo.scheduler;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;

import ponent;

@Component

public class Scheduler {

@Scheduled(fixedRate = 1000)

public void fixedRateSch() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

Date now = new Date();

String strDate = sdf.format(now);

System.out.println("Fixed Rate scheduler:: " + strDate);

}

}

Java

请注意以下屏幕截图,其中显⽰了在09:12:00启动的应⽤程序,之后每隔⼀个固定速率调度程序执⾏任务。

固定延迟

固定延迟调度程序⽤于在特定时间执⾏任务。它应该等待上⼀个任务完成。值应以毫秒为单位。此处显⽰⽰例代码 -@Scheduled(fixedDelay = 1000, initialDelay = 1000)

public void fixedDelaySch() {

}

这⾥,initialDelay是在初始延迟值之后第⼀次执⾏任务的时间。

从应⽤程序启动完成3秒后每秒执⾏⼀次任务的⽰例如下所⽰ -

package com.yiibai.demo.scheduler;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;

import ponent;

@Component

public class Scheduler {

@Scheduled(fixedDelay = 1000, initialDelay = 3000)

public void fixedDelaySch() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

Date now = new Date();

String strDate = sdf.format(now);

System.out.println("Fixed Delay scheduler:: " + strDate);

}

}

Java

执⾏上⾯代码后,它会显⽰在09:18:39开始的应⽤程序,每3秒后,固定延迟计划程序任务(每秒执⾏⼀次)。

相关文档
最新文档