@Scheduled中的cron表达式
cron表达式定义了定时任务何时执行
cron表达式语法
cron表达式可以是6个字符,7个字符组成
@Scheduled(cron="0 0 1 * * ?") //分别代表秒,分,小时,日,月,星期
@Scheduled(cron="0 0 1 * * ? *") //分别代表秒,分,小时,日,月,星期,年份
字符是数字,表示具体时间
@Scheduled(cron="0 0 1 * * ? *") //时分秒都是数字,表示1点0分0秒执行定时任务
字符是*,表示每个数值
@Scheduled(cron="0 0 1 * * ? *") //日,月,年都是*,表示每年每月每日都执行定时任务
字符是?,表示都可以
@Scheduled(cron="0 0 1 * * ? *") //星期和日两者有且有一个必须是?,因为这两个字段都表示天这个含义,会有逻辑冲突,这里星期是?且日是*,表示每天不管是星期几
字符是/,表示间隔
@Scheduled(cron="0 0 0/1 * * ? *") //小时字段是0/1,表示每小时执行一次
字符‘,’,表示集合
@Scheduled(cron="0 0 1,2 * * ? *") //表示1,2点都执行
综合举例
@Scheduled(cron="0 0/5 2 1,2 * ? *") //每年每月的1号,2号,2点钟开始每隔两小时执行一次定时任务,直到3点结束