关于 render-cron-jobs
为在 Render 上配置定时任务的开发者提供 Cron Job 行为、配置和限制说明,帮助区分定时任务、后台 Worker 与 Workflow,并指导 Blueprint 配置。
主要功能
- 01配置 UTC Cron 表达式
- 02说明 Blueprint 定时任务字段
- 03比较 Cron、Worker 与 Workflow
- 04梳理运行时长与网络限制
适用场景
- 01按计划清理数据库或生成报告
- 02定时同步外部 API 数据
- 03选择适合长时间或并行任务的服务类型
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ render-oss/ skills --skill render-cron-jobs安装后在 Claude Code 中输入/render-cron-jobs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cron-patterns.mdmigration-from-scheduler.mdprivate-networking.mdservice-types.md详细介绍
Render Cron 作业
本技能介绍 Render 上的 Cron 作业 服务:计划任务如何运行、平台提供哪些保证,以及它们与 Worker 和工作流有何不同。编写 render.yaml 或配置 Dashboard 时,请结合 Blueprint 和部署技能使用。
适用场景
- 执行计划任务:按 cron 启动、运行命令,并在完成后退出
- 为周期性或长时间运行的作业选择 cron、后台 Worker 或工作流
- 配置
type: cron、schedule和命令的 Blueprint 字段 - 了解限制:无磁盘、同一时间仅运行一个实例、最长运行 12 小时、仅允许通过私有网络进行出站连接
- 避免 UTC 计划任务常见问题(表达式使用的不是本地时间)
表达式速查表、框架 startCommand 示例以及 Heroku Scheduler 迁移映射见 references/。
在配置或排查 Cron 作业的私有网络出站连接之前,请先阅读 references/private-networking.md。
在选择 Cron 作业、Worker 和 Workflow 时,请阅读 references/service-types.md。
配置
- 计划:使用按 UTC 计算的 cron 表达式,而不是团队的本地时区。Dashboard 和 Blueprint 中的所有时间均为 UTC。
- 命令:任何有效的 Linux shell 命令或 bash 脚本路径。工作完成后,进程必须退出,因为运行时间越长,计费计算资源消耗越多。请在 Render 定价页面确认当前详情。
- 来源:
- Git 仓库 — Render 会在推送时构建(部署模式与其他基于仓库的服务相同);每次按计划运行时都会执行构建产物。
- 预构建 Docker 镜像 — 每次运行前都会拉取镜像,且不会在运行之间保留(与长期运行的服务不同,同一组镜像层不会在多次调用之间保持预热缓存)。
限制
- 无持久磁盘 — Cron 作业服务不能配置或挂载 Render 持久磁盘;请改用对象存储或数据库。
- 单实例运行保证 — 每个 Cron 服务同一时间最多有一个活动实例。新的计划触发不会启动第二个重叠实例。
- 最长运行时间:每次调用最多 12 小时。
- 定价:运行 Cron 作业会产生额外费用。请在 Render 定价页面确认当前详情。
- 私有网络:Cron 作业可以向私有网络上的其他服务发送流量;但无法接收私有网络入站连接(没有可供其他服务连接的内部主机名)。
执行行为
- 运行处于活动状态时手动选择“Trigger Run”:Render 会取消当前活动运行,然后启动新运行。
- 新的 Git 构建或部署不会影响已在进行中的运行——正在运行的进程会继续使用其启动时的版本,直到退出。
- 基于 Docker 的 Cron 作业:每次运行都会重新拉取镜像;不要假设不同调用之间会像持续运行的容器那样复用镜像层或镜像。
- 所有时间均为 UTC:文档中的 cron 表达式和“午夜”均指 UTC。常见错误是将本地时间计划直接复制到表达式中,而不先转换为 UTC。
Cron、Worker 和 Workflow 的区别
| 需求 | 使用 | 原因 |
|---|---|---|
| 少于 12 小时的周期性任务 | Cron 作业 | 按计划运行,简单,完成后退出 |
| 持续处理作业 | 后台 Worker | 始终运行,并轮询队列 |
| 超过 12 小时的周期性任务 | 后台 Worker | 不受 Cron 作业 12 小时运行时限的限制 |
| 计划执行的并行计算 | Cron 作业 + Workflow | Cron 按计划触发工作流运行;工作流会拆分任务,或编排并行步骤 |
Blueprint 配置
Cron 服务使用 type: cron,并配置 schedule 以及常规的构建/启动和环境变量接线:
services:
- type: cron
name: nightly-cleanup
schedule: "0 * * * *" # hourly at minute 0 — must be quoted in YAML
buildCommand: pip install -r requirements.txt
startCommand: python cleanup.py
envVars:
- key: DATABASE_URL
fromDatabase:
name: my-db
property: connectionString
schedule:标准的五字段 cron 表达式(minute hour day-of-month month day-of-week),时区为 UTC。buildCommand/startCommand:与其他非 Docker 服务的用途相同;使用 Docker 镜像的服务则按镜像型 cron 的配置,使用镜像和启动命令。envVars:与 Web 服务和 worker 的模式相同(密钥、关联数据库等)。
YAML 注意事项:必须为 schedule 值加引号,以免 * 等字符被解析为 YAML 别名或流语法。
常见模式
- 数据库清理 — 按计划归档或删除过期行
- 报告生成 — 生成 CSV/PDF 并上传到对象存储或通过电子邮件发送
- 外部 API 同步 — 按间隔批量拉取或推送数据
- 缓存预热 — 在流量高峰前访问端点或重建缓存
- 定时邮件 — 通过 cron + 邮件/API 发送摘要或提醒
参考资料
| 主题 | 文件 |
|---|---|
| 私有网络范围、内部地址和故障排查 | references/private-networking.md |
| 服务类型选择和执行模型 | references/service-types.md |
| 表达式示例、框架命令、错误、环境变量 | references/cron-patterns.md |
| Heroku Scheduler → Render 映射、Blueprint 示例 | references/migration-from-scheduler.md |
相关技能
- render-deploy — 首次部署、创建服务、Dashboard 流程
- render-blueprints — 完整的
render.yamlschema、预览和常见错误 - render-background-workers — 长时间运行的进程、队列,不受 12h 上限限制
- render-workflows — 编排式和并行任务,通常由 cron 按计划触发
当前文档检索
每当此技能要求查阅当前 Render 文档时:
- 使用可用的 URL 获取工具或 HTTP 客户端(例如
curl)直接获取链接的 Markdown 文档。不要用网页搜索摘要代替文档。 - 确认获取成功且返回了预期文档,然后阅读其内容。仅保存文件或打印文件路径并不足够。
- 如果请求失败,或工具无法读取 Markdown 响应,则打开并阅读链接的 HTML 版本。
- 如果两个版本都无法获取,请说明当前参考资料不可用,并遵循技能中针对该主题的备用方案。仅对稳定约束使用随附的指南,不要猜测可能变化的平台细节。
当任务需要多个参考资料时,对每个参考资料应用此流程,并区分已验证的文档与仍不可用的文档。
评论
支持 Markdown