Spring boot 定时任务

1.在启动类上加@EnableScheduling注解

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableScheduling
@SpringBootApplication
public class DemoApplication {

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

2.在创建定时任务的类上加上@Component,并在方法上加@Scheduled(cron="")

package com.example.demo.com.example.demo.controller;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class TimeJob {

    @Scheduled(cron = "0/1 * * * * ?")
    public void task1(){
        System.out.println(Thread.currentThread().getName()+"-----------------------01");
    }
    @Scheduled(cron = "0/1 * * * * ?")
    public void task2(){
        System.out.println(Thread.currentThread().getName()+"-----------------------02");
    }
    @Scheduled(cron = "0/1 * * * * ?")
    public void task3(){
        System.out.println(Thread.currentThread().getName()+"-----------------------03");
    }
    public void task4(){
        System.out.println(Thread.currentThread().getName()+"-----------------------0m");
    }

}

3.注意配一个任务的线程池,不然所有的定时任务走同一个线程;影响效率.定时任务的config如下:

package com.example.demo.com.example.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

@Configuration
public class TaskSchedulerConfig {
    @Bean
    public ThreadPoolTaskScheduler taskScheduler(){
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(3);
        threadPoolTaskScheduler.setThreadNamePrefix("spring-boot-task");
        return threadPoolTaskScheduler;
    }
}

4.运行结果如下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值