首页/AI 提示词库/编程开发/定时任务设计

定时任务设计

⌨ 编程开发 适配:通用(GPT / Claude / 豆包)难度:入门 4 个变量一键复制
使用说明

把需求翻译成可靠的定时任务:cron 表达式、时区陷阱、重叠防护、失败重试与告警,附测试方法。

每天/每小时跑数据同步、报表生成、缓存刷新;任务偶发不执行或重复执行没人发现。

提示词模板未填写变量以红色标出
帮我设计一个可靠的定时任务方案。

【任务】{{任务需求}}
【运行环境】{{运行环境}}
【数据量级】{{量级}}
【已有痛点】{{已有痛点}}

请输出:
一、cron 表达式与注释行:给出标准五段式 crontab 写法,明确写清时区处理方案(我环境是 UTC,给两种方案:表达式换算或 cron 里显式设 TZ,标注各自影响面)。
二、重叠与幂等防护:flock 单实例锁的 crontab 写法;任务侧幂等设计(按日期分区写入、先写临时表后原子替换,避免半跑状态产生脏数据)。
三、失败处理:退出码约定、重试策略(几次、间隔、什么错误不该重试)、日志落盘路径与轮转建议。
四、告警接入:任务失败/超时/成功但 0 行数据 三种情况分别怎么通知到人(给 curl 调飞书/钉钉 webhook 的 shell 片段,密钥用占位符)。
五、测试与验收清单:手动触发方法、时钟回拨/夏令时注意事项、「连续跑 3 天无重复数据」的核对 SQL。

要求:所有脚本片段可直接落地,敏感值用占位符;不要建议引入新组件(已有 crontab 就在 crontab 内解决)。
填变量变量会自动替换进上方模板,可随时复制
已填 0 / 4
使用步骤
  1. 先手动跑通脚本本体,再上 crontab。
  2. 上线后连续观察 3 天日志,确认幂等生效。
  3. 把告警 webhook 测试用假失败触发一次,验证真能收到。
幂等比重试更重要
能重复跑不出脏数据的任务,坏一次也只是延迟;设计时先问「跑两遍会怎样」。
UTC 服务器是头号陷阱
「凌晨 2 点」在 crontab 里到底是几点必须白纸黑字确认,日志时间戳同样要核对时区。
常见问题
任务耗时波动大怎么定频率?

频率间隔 ≥ 最大历史耗时的 2 倍;同时叠加单实例锁,双保险。

要不要上调度平台?

单机 5 个以内任务用 crontab+告警足够;出现跨机依赖、 DAG 编排需求再迁移,别为了小任务引平台。