Springboot中定时任务的实现

1、定时任务在J2EE项目中经常会被用到,如自动取消订单、在指定的时间清空缓存等需求就需要定时任务来实现。定时任务的完成是靠轮询来实现的,所以存在一定的延时误差是合理的。springboot在实现定时任务的过程中相关的依赖已经在父依赖中被导入了,所以不需要导入额外的依赖。
2、SpringBoot中定时任务的实现分两步:(1、)定时任务的的实现;
(2、)创建调度表达式;
3、具体实现.
(1、)定时任务的的实现,其实就是你要通过定时器完成的业务逻辑:

@Scheduled(cron = "*/2 * * * * ?")
    public void serviceOrderTask() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("YY:MM:DD hh:mm:ss");
        String formatDataStr = sdf.format(date);
        System.out.println("|_"+formatDataStr);
    }

(2、)配置调度表达式:
调度表达式的声明参考文章1.
调度表达式的声明参考文章2.

@Scheduled(cron = "*/2 * * * * ?")
    public void serviceOrderTask() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("YY:MM:DD hh:mm:ss");
        String formatDataStr = sdf.format(date);
        System.out.println("|_"+formatDataStr);
    }

通过@Scheduled注解添加调度表达式.
4、需要注意的地方
在使用SpringBoot任务调度的时候,需要在启动类上添加注解@EnableScheduling。

package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class DemoApplication {

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


Previous
SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法 SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法
最近在使用SpringCloud搭建微服务的过程中,发现上传文件经过Zuul网关转发的时候,回应为上传文件名中文乱码导致文件的写操作失败,从而导致文件上传失败,但是不经过Zuul转发的时候,文件上传正常,因此猜测是Zuul对上传的请求的编码
2018-12-04 Pursue
Next
SpringBoot中的拦截器的使用和配置 SpringBoot中的拦截器的使用和配置
SpringBoot中的拦截器是常用的技能,接下来将参照一个小小的demo讲解SpringBoot中拦截器的配置和使用.1、SpringBoot中拦截器的使用场景.日志、登陆验证、权限等都会用到拦截器.2、demo源码.在SpringBoo
2018-12-04 Pursue