@EnableScheduling
@Component public class SchedulerTask { private int count =0; @Scheduled(cron = "*/6 * * * * ?") private void task(){ System.out.println("this is scheduler task runing "+(count++)); } }
每隔6秒执行一次该方法spa
定时任务注解接口内部构造:.net
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Repeatable(Schedules.class) public @interface Scheduled { String cron() default ""; String zone() default ""; long fixedDelay() default -1L; String fixedDelayString() default ""; long fixedRate() default -1L; String fixedRateString() default ""; long initialDelay() default -1L; String initialDelayString() default ""; }
4.1 cron参数code
* * * * * * :分别对应,秒、分、时、日、月、年 0 0 10,14,16 * * ? :天天上午10点,下午2点,4点 ,逗号之间链接起来算一个 0 0 12 * * ? :天天中午12点触发 0 0/5 0 * * ? :每5分钟执行一次 0 10,14,16 * * ? 天天上午10点,下午2点,4点 0/30 9-17 * * ? 朝九晚五工做时间内每半小时 0 12 ? * WED 表示每一个星期三中午12点 "0 0 12 * * ?" 天天中午12点触发 "0 * 14 * * ?" 在天天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在天天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在天天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在天天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每一年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每个月15日上午10:15触发 "0 15 10 L * ?" 每个月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每个月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每个月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每个月的第三个星期五上午10:15触发 "0 15 10 ? * *" 天天上午10:15触发 "0 15 10 * * ?" 天天上午10:15触发 "0 15 10 * * ? *" 天天上午10:15触发 "0 15 10 * * ? 2005" 2005年的天天上午10:15触发
4.2 fixedRateblog
上一次 启动时间点以后X秒执行一次,单位毫秒
4.3 fixedDelay接口
上一次结束时间点以后每X秒执行一次,单位毫秒
4.4 initialDelayget
第一次延迟X秒执行,以后按照fixedRate的规则每X秒执行,单位毫秒 @Scheduled(fixedRate = 6000) :上一次开始执行时间点以后6秒再执行@Scheduled(fixedDelay = 6000):上一次执行完毕时间点以后6秒再执行@Scheduled(initialDelay=1000, fixedRate=6000):第一次延迟1秒后执行,以后按fixedRate的规则每6秒执行一次
ok~it