SpringBoot任务调度器的实现代码

网友投稿 312 2023-01-17


SpringBoot任务调度器的实现代码

SpringBoot自带了任务调度器,通过注解的方式使用。

启用方式: 在配置类上注解 org.springframework.scheduling.annotation.EnableScheduling

java示例

package bj.scheduler;

import lombok.extern.slf4j.Slf4j;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

import org.springframework.scheduling.annotation.EnableScheduling;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.scheduling.annotation.Schedules;

import java.time.LocalDateTime;

/**

* Created by BaiJiFeiLong@gmail.com at 2018/12/12 下午2:51

*/

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

@EnableScheduling

@Slf4j

public class SchedulerApp {

public static void main(String[] args) throws InterruptedException {

SpringApplication.run(SchedulerApp.class, args);

Thread.currentThread().join();

}

@Schedules({

@Scheduled(fixedRate = 1000),

@Scheduled(fixedDelay = 1001),

@Scheduled(cron = "* * * * * *")

})

public void sayHello() {

log.info("{} Hello", LocalDateTime.now());

}

}

要点

@EnableScheduling 启用任务调度器

@Schedules 组合多个调度器。多个调度器全部启用。

@Scheduled 单个调度器的配置

fixedRate 固定执行频率(毫秒),不计执行耗时

fixedDelay 固定执行延迟(毫秒),表示距离上次执行完毕的时长

cron CronTab调度格式,第一位表示秒

控制台输出

. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v2.1.0.RELEASE)

2018-12-12 15:01:00.332 INFO 34660 --- [ main] bj.scheduler.SchedulerApp : Starting SchedulerApp on MacBook-Air-2.local with PID 34660 (/Users/yuchao/temp/java/hellomaven/target/classes started by yuchao in /Users/yuchao/temp/java/hellomaven)

2018-12-12 15:01:00.339 INFO 34660 --- [ main] bj.shttp://cheduler.SchedulerApp : No active profile set, falling back to default profiles: default

2018-12-12 15:01:02.395 INFO 34660 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler'

2018-12-12 15:01:02.496 WARN 34660 --- [ main] reactor.netty.tcp.TcpResources : [http] resources will use the default LoopResources: DefaultLoopResources {prefix=reactor-http, daemon=true, selectCount=4, workerCount=4}

2018-12-12 15:01:02.498 WARN 34660 --- [ main] reactor.netty.tcp.TcpResources : [http] resources will use the default ConnectionProvider: PooledConnectionProvider {name=http, poolFactory=reactor.netty.resources.ConnectionProvider$$Lambda$278/687399269@6594402a}

2018-12-12 15:01:02.707 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:02.707 Hello

2018-12-12 15:01:02.707 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:02.707 Hello

2018-12-12 15:01:02.708 INFO 34660 --- [ main] bj.scheduler.SchedulerApp : Started SchedulerApp in 3.257 seconds (JVM running for 4.997)

2018-12-12 15:01:03.004 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:03.004 Hello

2018-12-12 15:01:03.704 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:03.704 Hello

2018-12-12 15:01:03.710 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:03.710 Hello

2018-12-12 15:01:04.002 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:04.002 Hello

2018-12-12 15:01:04.702 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:04.702 Hello

2018-12-12 15:01:04.712 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:04.712 Hello

2018-12-12 15:01:05.000 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:05 Hello

2018-12-12 15:01:05.700 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:05.700 Hello

2018-12-12 15:01:05.716 INFO 34660 --- [ scheduling-1] bj.scheduler.SchedulerApp : 2018-12-12T15:01:05.716 Hello


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:包含局域网post测试工具的词条
下一篇:数字化研发管理平台(数字化研发管理平台官网)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~