Cron表达式,Spring定时任务,附实验结果
Cron表达式示例:
Java中使用定时任务:
如: 每五分钟更新一次(进行一次定时任务)
@Scheduled(cron = "0 0/5 * * * ? ")
public void searchStores() {
SearchStoresReqDto searchStoresReqDto = new SearchStoresReqDto();
searchStoresReqDto.setMemberId(StringUtils.isNotBlank(memberId) ? memberId : "");
List<SearchStoresDto> storesDtos = new ArrayList<>();
try {
BasePageRet<List<SearchStoresDto>> searchStoresRet = shopServer.searchAllStores(searchStoresReqDto, tokenService.getCookAdminUserTokenBearer());
if (searchStoresRet != null && searchStoresRet.getCode() == 0 && searchStoresRet.getData() != null) {
storesDtos = searchStoresRet.getData();
}
} catch (Exception e) {
log.error(e.getMessage());
}
log.info("Schedule Task done!,查询商业云上店铺数量: {} ", searchStoresRet.getData().size());
}
启动类上加注解:
@EnableScheduling
Cron表达式 | 含义 |
0 0 10,14,16 * * ? | 每天的10点、14点、16点 |
0 0/30 9-17 * * ? | 朝九晚五内的每半个小时 |
0 0 12 ? * WED | 每个星期三的12点 |
0 0 12 * * ? | 每天中午12点 |
0 15 10 ? * * | 每天上午10:15 |
0 15 10 * * ? | 每天上午10:15 |
0 15 10 * * ? * | 每天上午10:15 |
0 15 10 * * ? 2015 | 2015年的每天10:15 |
0 * 14 * * ? | 每天14:00至14:59期间的每1分钟 |
0 0/5 14 * * ? | 每天14:00至14:55期间的每5分钟 |
0 0/5 14,18 * * ? | 每天14:00至18:55期间,和18:00至18:55期间的每5分钟 |
0 0-5 14 * * ? | 每天14:00至14:05期间的每1分钟 |
0 10,44 14 ? 3 WED | 每年三月的所有星期三的14:10和14: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 |