@schedule
@schedule注解参数有如下
* cron:cron表达式,指定任务在特定时间执行;
* fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms;
* fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;
* fixedRate:表示按一定的频率执行任务,参数类型为long,单位ms;
* fixedRateString: 与fixedRate的含义一样,只是将参数类型变为String;
* initialDelay:表示延迟多久再第一次执行任务,参数类型为long,单位ms;
* initialDelayString:与initialDelay的含义一样,只是将参数类型变为String;
Delay的Rate区别在于Delay是任务完成之后多久执行, Rate是任务开始之后多久执行,一个是按完成时间计时 一个是按开始时间计时
@schedule原理
@schedule底层使用的是spring的任务调度线程池ThreadPoolTaskScheduler,ThreadPoolTaskScheduler底层使用的为JDK自带的ScheduledExecutorService(其实现类为ScheduledThreadPoolExecutor)