- @EnableScheduling 在配置类上使用,@Scheduled在方法上使用
参数 |
描述 |
@EnableScheduling |
开启计划任务的支持 |
@Scheduled |
声明这是一个定时任务,包括cron,fixDelay,fixRate等定时类型(需先开启计划任务的支持) |
- @Scheduled有以下参数
参数 |
描述 |
cron |
设置定时执行的表达式,如 0 0/5 * * * ?每隔五分钟执行一次 秒 分 时 天 月 |
zone |
表示执行时间的时区 |
fixedDelay |
和fixedDelayString 表示一个固定延迟时间执行,上个任务完成后,延迟多长时间执行 |
fixedDelayString |
与 fixedDelay 相同,但使用字符串的形式 |
fixedRate |
和fixedRateString表示一个固定频率执行,上个任务开始后,多长时间后开始执行 |
fixedRateString |
与 fixedRate 相同,但使用字符串的形式 |
initialDelay |
和initialDelayString表示一个初始延迟时间,第一次被调用前延迟的时间 |
initialDelayString |
与 initialDelay 相同,但使用字符串的形式 |
timeUnit |
设置时间单位,默认TimeUnit.MILLISECONDS(毫秒) |
示例
@Component public class SchedulingTask {
//表示每隔3秒 // @Scheduled(fixedRate = 3000)
// 表示方法执行完成后5秒 // @Scheduled(fixedDelay = 5000)
// 表示每五秒执行一次 @Scheduled(cron = "*/5 * * * * ?") public void TestTask() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(dateFormat.format(new Date())); } } |
示例
@Configuration
@ComponentScan()
@EnableScheduling //通过@EnableScheduling注解开启对计划任务的支持
public class TaskScheduleConfig{
...
}