方法一
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- SpringBoot 核心组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 步骤二
- 在启动类上使用@EnableScheduling注解开启定时任务
@SpringBootApplication
@EnableScheduling
public class BigdataAttendanceApplication {
public static void main(String[] args) {
SpringApplication.run(BigdataAttendanceApplication.class, args);
}
}
- 步骤三
- 在applicaiton.yml或者application.properties文件中进行定时任务的配置
schedule:
nq:
attendance:
week: 0 5 10 ? * MON
- 步骤四
- 给执行定时任务的类上加上@component注解
- 给要定时执行的方法上添加注解@Scheduled使用@Scheduled注解中的cron属性来获取配置(若cron属性为时间格式,则步骤三可以省略)
@Component
public class AttendanceSchedule {
private static final Logger logger = LoggerFactory.getLogger(AttendanceSchedule.class);
//获取配置来启动定时任务
@Scheduled(cron= "${schedule.wechat.nq.attendance.week}")
public void weekNqAttendanceMessageSechdule(){
logger.error("开始推送内勤考勤");
logger.error("内勤考勤微信信息推送成功");
}
}
方法二
- 同方法一,在pom.xml文件中导入必要的依赖
- 直接在定时器类上添加@Configuration、@EnableScheduling注解,标注这个类是配置文件,并开启定时开关
- 在定时方法上使用@Schedule注解
@EnableScheduling //开启定时任务
@Configuration //该类为配置文件
public class Job {
private static final Logger logger = LoggerFactory.getLogger(Job.class);
@Scheduled(cron = "3 42 13 * * ?")
public void checkState1() {
logger.info(">>>>> cron下午13:42上传检查开始....");
logger.info(">>>>> cron下午13:42上传检查完成....");
}
@Scheduled(cron = "4 42 13 * * ?")
public void checkState2() {
logger.info(">>>>> cron下午13:42上传检查开始....");
logger.info(">>>>> cron下午13:42上传检查完成....");
}
}