平台定时任务与自动清理

想知道平台有哪些后台定时任务(自动清理/资源均衡/账单/伸缩)、它们什么时间跑、默认是否启用,或排查"我的 pod/调试镜像/数据为什么被自动清理"时读这篇

运维管理 / 定时任务
定时任务celerycelery beatcrontab自动清理资源回收自动维护定时调度delete_workflowdelete_old_datadelete_debug_dockercheck_pod_terminatingwatch_pod_utilizationday_billcronhpamake_timerun_config

平台定时任务与自动清理(Celery beat)

平台用 Celery beat 跑一批后台定时任务(自动清理、资源调度、账单等)。调度表定义在 myapp/config.pyCeleryConfig.beat_schedule(约 :691-755),任务实现在 myapp/tasks/这些任务需要 Celery beat + worker 进程在运行(容器/部署中通常随后端一起启动)。

默认启用的定时任务

任务 调度(crontab) 作用
task.delete_workflow 每小时第 1 分 删除旧的 Argo workflow 记录
task.make_timerun_config 每 5 分钟 生成 pipeline 定时调度的 yaml(让定时任务流按时触发)
task.cronhpa 每 5 分钟 定时弹性伸缩(cronhpa,按时间段对服务扩缩容)
task.delete_old_data 每天 01:01 删除数据库中的旧数据/历史记录
task.check_pipeline_run 每天 11:10 检查 pipeline 运行时长(超时提醒)
task.delete_debug_docker 每天 23:30 删除镜像调试的 debug pod(调试镜像不会一直留着)
task.watch_pod_utilization 每天 11:10 推送低负载利用率的 pod(提醒释放资源)
task.check_pod_terminating 每 30 分钟 检查并处理卡在 terminating 的 pod
task.day_bill 每天 03:10 生成每日资源账单(计量计费)

排障提示:如果发现「调试镜像 pod 半夜消失」「旧 workflow/数据被清掉」「收到低负载 pod 提醒」, 通常就是上面这些定时任务的正常行为,不是故障。

默认禁用的定时任务(在 config.py 中被注释)

需要时在 beat_schedule 中取消注释即可启用:

任务 调度(crontab) 作用
task.delete_notebook 每天 04:01 定时停止 notebook,释放资源
task.push_workspace_size 每天 10:10 推送用户工作目录文件大小
task.watch_gpu 8-23 点每 2 小时 推送 GPU 使用情况
task.adjust_node_resource 每 10 分钟 在多项目组间做节点资源均衡
task.adjust_service_resource 每 10 分钟 把资源释放给高优先级推理服务
task.adjust_pipeline_resource 每 10 分钟 把资源释放给高优先级训练任务

myapp/tasks/ 下还有更多任务函数(异步/被动触发,不一定在 beat 调度里)。要确认某任务的确切行为, 直接看 myapp/tasks/ 对应实现;调度时间以 myapp/config.pybeat_schedule 为准。

最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki