如何编写含9-21点每30分钟及凌晨3点执行的Cron表达式?
Cron表达式实现方案
核心需求回顾
你需要实现两个触发规则:
- 上午9点至晚上9点,每30分钟执行一次
- 凌晨3点整执行一次
解决方案说明
1. 兼容所有环境的方案:两个独立表达式
标准Unix/Linux Cron(以及多数基础调度工具)不支持在单个表达式中同时满足两种互斥的时间规则(3点仅整分执行,9-21点每30分钟执行),因此最稳妥的方式是使用两个独立的Cron表达式:
- 9-21点每30分钟执行:
*/30 9-21 * * * - 凌晨3点整执行:
0 3 * * *
2. 单个表达式实现(仅支持扩展语法的工具)
如果你的任务调度工具支持多规则组合(如Quartz、Airflow、某些云调度服务),可以用单个表达式合并两个规则,最常见的写法是用逗号分隔完整的Cron表达式:
0 3 * * *, */30 9-21 * * *
该表达式的逻辑是“触发任一规则即执行任务”,既满足凌晨3点整执行,也覆盖9-21点每30分钟的执行需求。
注意:部分工具可能支持其他扩展语法(如逻辑或符号||),但逗号分隔多表达式是通用程度较高的写法,使用前建议确认工具文档。
内容的提问来源于stack exchange,提问作者Sammy Pawar
相关产品推荐
相关产品推荐

