跳到主要内容
返回时间线
Vercel News来源发表:

Vercel Schedules 进入公开测试:智能体可在应用运行时自行创建、修改和取消定时任务

核心概要

Vercel 推出 Vercel Schedules,让智能体和应用在运行过程中通过代码创建、修改或取消一次性与周期性定时任务,无需重新部署。此前的 Vercel Cron Jobs 把时间写在 vercel.json 或构建输出配置里,部署时才同步;动态调度则要另存数据库并用轮询任务检查到期工作。Schedules 把请求和触发时间交给 Vercel,到期时经 Queues 投递到应用,由应用代码校验权限并执行,目前处于公开测试阶段。

Source-provided article image: Introducing Vercel Schedules
Vercel

深度剖析

定时任务不再只能随部署更新。Vercel Schedules 允许智能体和应用在应用仍在运行时决定工作何时发生,并创建、修改或取消一次性与周期性调度。 此前的 Vercel Cron Jobs 采用静态方式,时间写在 vercel.json 或构建输出配置中,部署时才同步;而智能体与用户交互时工作会变化,调度需要实时更新。 Vercel 给出的对照是:传统做法把请求和调度时间存进数据库,再用 cron 任务轮询检查到期工作;使用 Schedules 后,智能体直接创建记录请求与运行时间的调度,不需要单独的数据库和轮询任务。

调度只负责何时触发、把任务发到哪里,具体工作仍由应用自己的代码完成。 动态调度通过 JS SDK、CLI 或 API 在运行时创建和管理,支持一次性与周期性工作,并通过 Queue 主题投递。 示例中,AI SDK 工具调用 Schedules.create 写入任务、未来本地时间和 IANA 时区,目标为 agent-work 主题;到期后 Vercel 用 Queues 把保存的请求送达应用,应用读取请求、检查用户当前权限并启动智能体。

静态调度仍可保留在项目配置中,用于调用私有函数、HTTP 路径或向 Queue 主题发送消息。 静态调度在部署时同步,动态调度则在运行时由应用管理,两者覆盖不同场景。 示例把每日清理任务写成 cron 表达式并指定时区,Vercel 直接调用该私有函数而不暴露公网 URL,并校验每次调用来自调度服务;Nitro 3 的实验性集成可把已有 scheduledTasks 配置作为私有函数运行。

启示与展望

Vercel Schedules 目前处于公开测试阶段,可用于应用已有的周期性任务;动态调度支持一次性与周期性工作,并通过 Queue 主题投递。文档说明可在 Preview 部署和自定义环境中测试,再进入生产,并可用 Run Schedule 立即试跑、查看历史运行时间。

文档未给出调度精度、吞吐或规模方面的测量,也未说明公开测试之后接口是否变化;示例中的权限检查由应用代码在任务到期时完成,而非由调度服务承担。