springboot 定时任务使用

定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务。 在SpirngBoot中使用定时任务变的特别简单,不需要再像SpringMVC一样写很多的配置,只需要在启动类上增加一个@EnableScheduling注解即可。

启动类开启定时任务

//开启定时任务
@EnableScheduling
@RestController
@SpringBootApplication
//设置扫描的包名
@ComponentScan(basePackages = {"com.preach.controller"})
public class InchlifcApplication {
   public static void main(String[] args) {
      SpringApplication.run(InchlifcApplication.class, args);
   }
}

使用定时任务的类上使用注解@Compoment,在方法上使用注解@Scheduled

@Component
public class IndexController {

    /**
     * 时间间隔,每隔5秒执行一次
     */
    @Scheduled(fixedRate = 5000)
    public void task() {
        System.out.println("现在时间是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    }
}

@Component加在需要用到的组件上面,如果是控制层 有@RestController 就不用再加@Component了,其他同理

@Scheduled是方法上注解,添加该注解的方法即为单个计划任务,有两种方式可以定义:

  1. @Scheduled(fixedRate = 3000) //3秒
    通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行一次

  2. @Scheduled(cron = "0 0/10 * * * ?") //表达式 百度可以获取更多方式
    使用cron表达式可按照指定时间执行,这里是每10分钟执行一次;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章