# DevOps定时任务问题排查指南
# 通用排查思路
确认定时任务配置
- 检查 Cron 表达式是否正确
- 确认任务状态为“启用”
- 确认任务关联的资源(构建定义、报表)存在且可用
查看详细日志
- 检查 DevOps 后端日志
查询
dps_timer表- 查看任务的下次执行时间、执行次数、状态
- 确认数据库时间与服务器时间一致
验证时间配置
- 使用
date命令检查所有节点服务器时间 - 检查时区配置:
timedatectl或cat /etc/timezone - 确认数据库时区设置。
- 使用
测试手动触发
- 尝试手动执行定时任务(如点击“立即执行”)
- 观察任务是否能正常执行
- 对比手动执行与定时执行的区别
# 定时任务不生效
问题现象:
- 配置了 Cron 表达式,但到了时间未触发
- 到了预定时间任务未执行
- 页面显示的下次执行时间和数据库不一致
排查步骤:
- 检查所有节点的服务器时间
- 检查时区配置
- 对比页面和数据库的下次执行时间
- 检查平台参数
Pcm.TimerMisfireThreshold,配置合理的阈值 - 检查 Cron 表达式语法
- 查看 devops 后台日志
解决方案:
- 方案 1: 调整服务器时间,确保所有节点时间一致
- 方案 2: 在平台参数中将
Pcm.TimerMisfireThreshold调整为合理阈值 - 方案 3: 使用 Cron 表达式生成器重新生成正确表达式
# 报表数据不更新
问题现象:
- 部署报表显示暂无数据
- 修改项目名称后,大屏仍显示旧名称
排查步骤:
确认报表统计定时任务状态
查看平台参数中
Lm.StatisticsInterval统计间隔参数配置,默认为60分钟
解决方案:
可根据项目情况调整 Lm.StatisticsInterval 参数配置
# 附录
# 附录 A: Cron 时间表达式说明
┌───────────── 分钟 (0 - 59)
│ ┌───────────── 小时 (0 - 23)
│ │ ┌───────────── 日期 (1 - 31)
│ │ │ ┌───────────── 月份 (1 - 12)
│ │ │ │ ┌───────────── 星期几 (0 - 7) (0 和 7 都代表周日)
│ │ │ │ │
* * * * * <要执行的命令>
# 附录 B:平台参数说明
| 参数名 | 说明 | 是否需要重启 |
|---|---|---|
Lm.StatisticsInterval | 报表统计间隔(分钟) | 是 |
Pcm.TimerMisfireThreshold | 任务错过触发阈值(秒) | 是 |