@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