1.编写配置文件
package com.sudy.chargerpad.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@EnableScheduling
public class ScheduleConfig {
}
2.写测试类
package com.sudy.chargerpad.test;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
/**
* 配置项 类型 描述
* cron String 使用表达式的方式定义执行时间 秒 分 时 天 月 星期 年
* * 标识任意值
* ? 不指定值,用于处理天和星期配置的冲突
* - 指定时间区间
* / 指定时间间隔执行
* L 最后的
* # 第几个
* , 列举多个项
* zone String 可以设定区域时间
* fixedDelay long 表示从上一个任务完成开始到下一个任务开始的间隔,单位毫秒
* fixedDelayString String 与fixedDelay相同,只是使用字符串,可以通过spEL来引入配置文件的配置
* initialDelay long 在spring ioc容器完成初始化后,首次任务执行延时时间,单位毫秒
* initialDelayString String 与initialDelay相同,只是使用字符串
* fixedRate long 从上一个任务开始到下一个任务开始的间隔,单位毫秒
* fixedRateString String
*/
@Service
public class ScheduleService {
private int count = 1;
private int count1 = 1;
//每隔1秒执行一次
@Scheduled(fixedRate = 1000)
@Async
public void test1(){
System.out.println("thread:"+Thread.currentThread().getName()+" count:"+count);
count++;
}
//16:55:00-16:55:59 每隔两秒执行一次
@Scheduled(cron = "0/2 55 16 * * ?")
@Async
public void test2(){
System.out.println("thread:"+Thread.currentThread().getName()+" count:"+count1);
count1++;
}
}