1. 配置项目的配置文件(application.yml)
scheduling:
enabled: true
2.创建定时任务配置类
package com.eleven.config;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
/**
* @author zhaojinhui
* @date 2020/12/8 16:06
* @apiNote 定时任务开关
* @ConditionalOnProperty 配置文件读取是否启用此配置 只能是true,false
* 读取配置文件中的scheduling.enabled的值判断是否开启定时任务
* @RequiredArgsConstructor(onConstructor = @__(@Autowired)) 自动注入属性,将需要注入的属性改为private final 可以省去 @Autowired注解
*/
@Configuration
@EnableScheduling
@ConditionalOnProperty(prefix = "scheduling", name = "enabled",havingValue = "true")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SchedulingConfig {
private final UserService userService;
/**
* 获取用户企业部门信息
* 每隔三小时执行一次
*/
@Scheduled(cron = "0 0 0/3 * * ?")
public void getAllIncrementalData() {
userService.getAllIncrementalData();
}
}