概述
项目中会遇到,需要定时去执行的任务,可以使用Quartz来执行定时任务,也可以使用SpringBoot使用内置Spring Task来执行定时任务,下面使用SpringBoot使用内置Spring Task来执行定时任务
demo
在类上加上定时任务开启注解
加上注解 @Scheduled就可以执行定时任务了,
@Component
public class InnerTask {
@Scheduled(fixedRate = 2000)
public String taskTest() throws Exception {
/*if (fileName.isEmpty()) {
return "文件为空,请重新上传";
}
if (!fileName.getOriginalFilename().endsWith(".xls")&&!fileName.getOriginalFilename().endsWith(".xlsx")) {
return "上传文件不是excel类型";
}*/
String fileName = "D:/tmpCanDel/StudentInfo07.xls";
File file = new File(fileName);
FileInputStream fileInputStream = new FileInputStream(file);
InputStream fis = new BufferedInputStream(fileInputStream);
//获得第一张excel表
Workbook workbook = WorkbookFactory.create(fis);
List<Student> studentList = readExcel(Student.class, workbook);
//读取图片,返回路径
List<String> pic = getPic(workbook);
for (int i=0;i<studentList.size();i++){
studentList.get(i).setPicpath(pic.get(i));
System.out.println(studentList.get(i));
}
return "good";
}
需要注意一点的是,在使用Spring的内置Task执行定时任务时,方法上不能进行传参,有参数的传入会报错