当香蕉遇上漫画:一场跨界美味的奇幻之旅

核心内容摘要

听!那来自远古的回响:“放——锵——锵——锵——锵——锵——锵——锵——锵——!”
母慈子孝共天伦:岁月静好,爱意绵长

躲进光影的绿洲:一份唤醒感官的“清新影院”私藏指南

前言在日常开发工作中定时任务是一个非常常见的需求。

无论是数据同步、报表生成还是系统维护都需要用到定时任务调度。

而Cron表达式作为定时任务调度的核心配置语法是每个开发者都必须掌握的技能。

本文将从基础语法出发带你全面掌握Cron表达式的使用。

Cron表达式基础解析

1 什么是Cron表达式Cron表达式是一种用于配置定时任务的字符串表达式最初诞生于Unix系统现已广泛应用于各种调度框架中如Spring Task、Quartz等。

它通过简洁的语法描述复杂的时间规则。

2 字段定义标准的Cron表达式由6个或7个时间字段组成字段之间用空格分隔秒 分 时 日 月 周 [年]字段取值范围允许的特殊字符必填秒

, - * /是分

, - * /是时

, - * /是日

, - * / ? L W是月

或 JAN-DEC, - * /是周

或 SUN-SAT, - * / ? L #是年

, - * /否注意“日和周字段互斥必须有一个使用”?占位符。

3 特殊字符详解字符含义示例说明*所有值* * * * *每秒执行,列表值1,3,5 * * * *第

1、

5秒执行-范围值

* * * *第1到第5秒执行/间隔值0/5 * * * *每5秒执行从第0秒开始?不指定值0 0 12 * * ?每天12点执行不指定周几L最后0 0 12 L * ?每月最后一天12点执行W最近工作日0 0 12 15W * ?每月15日最近工作日12点执行#第几个0 0 12 ? * 5#2每月第2个周五12点执行

项目常用Cron示例集下面整理了30个企业级项目中常用的Cron表达式按场景分类

1 按频率执行# 每5秒执行一次 0/5 * * * * ? # 每30秒执行一次 0/30 * * * * ? # 每分钟执行一次 0 * * * * ? # 每5分钟执行一次 0 */5 * * * ? # 每15分钟执行一次 0 */15 * * * ? # 每30分钟执行一次 0 */30 * * * ? # 每小时执行一次 0 0 * * * ? # 每2小时执行一次 0 0 */2 * * ? # 每6小时执行一次 0 0 */6 * * ?

2 每日固定时间执行# 每天凌晨0点执行 0 0 0 * * ? # 每天上午8点执行 0 0 8 * * ? # 每天中午12点执行 0 0 12 * * ? # 每天下午18点执行 0 0 18 * * ? # 每天晚上23点59分执行 0 59 23 * * ? # 每天凌晨2点30分执行 0 30 2 * * ?

3 工作日/周末执行# 工作日周一到周五上午9点执行 0 0 9 ? * MON-FRI # 工作日每天上午9点和下午18点执行 0 0 9,18 ? * MON-FRI # 周末周

周日上午10点执行 0 0 10 ? * SAT,SUN # 周一上午9点执行 0 0 9 ? * MON # 周五下午17点执行 0 0 17 ? * FRI

4 每周固定时间执行# 每周一上午8点执行 0 0 8 ? * MON # 每周二下午14点执行 0 0 14 ? * TUE # 每周三上午10点执行 0 0 10 ? * WED # 每周日凌晨1点执行备份任务 0 0 1 ? * SUN # 每周五晚上23点执行 0 0 23 ? * FRI

5 每月特定日期执行# 每月1日凌晨0点执行 0 0 0 1 * ? # 每月15日上午10点执行 0 0 10 15 * ? # 每月1日和15日执行 0 0 0 1,15 * ? # 每月最后一天执行 0 0 0 L * ? # 每月最后一天上午10点执行 0 0 10 L * ? # 每季度第一天执行1月、4月、7月、10月1日 0 0 0 1 1,4,7,10 ?

6 复杂时间组合# 每月1日和15日的凌晨2点执行 0 0 2 1,15 * ? # 工作日的每天上午9点到下午18点每小时执行一次 0 0

? * MON-FRI # 每周

一、

五的上午8点30分执行 0 30 8 ? * MON,WED,FRI # 每月第2个周五上午10点执行 0 0 10 ? * 5#2 # 每月最后一个周五执行 0 0 0 ? * 6L # 每月15日最近工作日执行如果15日是周六则14日执行如果15日是周日则16日执行 0 0 10 15W * ?

示例解析与

注意事项

1 典型示例详解示例1每日凌晨数据备份0 0 2 * * ?含义每天凌晨2点执行使用场景数据库全量备份、日志归档说明选择凌晨2点是因为系统负载较低示例2工作日报表生成0 0 8 ? * MON-FRI含义工作日周一到周五上午8点执行使用场景生成前一天的业务报表说明避开周末确保工作日上班前完成示例3每月账单结算0 0 0 1 * ?含义每月1日0点执行使用场景月度账单结算、统计归档说明月初执行便于数据统计示例4每15分钟健康检查0 */15 * * * ?含义每15分钟执行一次使用场景服务健康检查、心跳检测说明高频检测但不过于频繁示例5每月第2个周二发送提醒0 0 10 ? * 2#2含义每月第2个周二上午10点使用场景定期会议提醒、月度报告通知说明2#2表示第2个周二2周二

2 常见陷阱与最佳实践陷阱1日和周字段冲突❌错误示例0 0 12 1 * MON # 同时指定了1号和周一✅正确示例0 0 12 1 * ? # 每月1日不指定周 0 0 12 ? * MON # 每周一不指定日期说明日和周字段互斥必须有一个使用?。

陷阱2间隔值的起始点❌错误理解*/5意味着从第5个单位开始✅正确理解*/5意味着从第0个单位开始每隔5个单位0/5 * * * * ? # 第

0、

5、

10、

..秒执行 5/5 * * * * ? # 第

5、

10、

15、

..秒执行陷阱3超出范围的日期0 0 0 31 * ? # 2月31日不存在不会执行最佳实践使用L字符表示最后一天避免日期不存在的问题对于跨月任务考虑业务逻辑处理陷阱4时区问题0 0 8 * * ? # 服务器时间上午8点不一定是北京时间最佳实践明确指定时区如使用Scheduled的zone参数统一使用UTC时间或服务器本地时间在任务文档中注明时区陷阱5系统时钟变更问题服务器时钟调整如NTP同步可能导致任务重复执行或跳过解决方案重要任务应结合分布式锁和数据库记录最佳实践清单明确业务需求任务执行频率是否合理高频任务是否会造成性能压力添加任务日志记录任务开始时间、结束时间、执行结果便于排查问题和监控异常处理任务执行失败时的重试机制异常告警通知分布式环境考虑使用分布式锁避免重复执行考虑任务分片处理文档化记录每个Cron表达式的用途和业务含义便于后续维护

实用工具推荐

1 Cron表达式在线工具

CronTab Guru网址https://crontab.guru/特点简洁直观的界面实时解析Cron表达式提供常用示例库显示下次执行时间适用场景快速验证和生成基础Cron表达式

Cron表达式生成器网址https://www.bejson.com/othertools/cron/特点中文界面可视化配置选项支持生成7字段表达式提供执行时间预览适用场景需要精确配置复杂时间规则

天美星空最新免费看剧-天美星空最新免费看剧应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123