Aegra Cron定时任务完整教程:用Cron表达式与时区自动触发AI Agent

发布时间:2026/10/14 17:34:37
Aegra Cron定时任务完整教程:用Cron表达式与时区自动触发AI Agent 后端人工智能AI Agent【免费下载链接】aegraOpen source alternative to LangGraph Platform (now LangSmith Deployments) - Self-hosted AI agent backend with FastAPI and PostgreSQL. Zero vendor lock-in, full control over your agent infrastructure.项目地址https://gitcode.com/gh_mirrors/ae/aegra点击查看免费下载Aegra 是一款开源的自托管 AI Agent 后端LangGraph Platform 的开源替代内置了Cron 定时任务调度器你只需写一个标准的 Cron 表达式并指定时区Aegra 就会自动按时触发你的 AI Agent 执行任务——每天晨报、周报摘要、定期数据巡检都可以交给 Agent 自动完成无需任何外部调度工具。一、什么是 Aegra Cron 定时任务Aegra 的定时任务由一个后台轮询调度器驱动每个服务器实例内部都有一个轮询循环定期检查 PostgreSQL 中到期的 Cron 任务并为到期任务自动创建一次 Agent 运行Run。核心特性一览⏰Cron 表达式调度支持标准 5 字段表达式也可开启秒级 6 字段表达式时区支持传入 IANA 时区名如Asia/Shanghai任务按当地时间触发两种模式无状态每次新建会话或绑定线程持续同一对话上下文️存储于 PostgreSQL任务持久化重启不丢失多实例部署下通过租约lease机制避免重复触发️全生命周期管理支持创建、更新、暂停、恢复、删除与搜索调度器源码位于 libs/aegra-api/src/aegra_api/services/cron_scheduler.py官方文档见 docs/guides/cron.mdx。二、Cron 表达式怎么写5 字段格式速查Aegra 使用标准的 Cron 表达式语法格式如下┌──── 分钟 (0-59) │ ┌──── 小时 (0-23) │ │ ┌──── 日期 (1-31) │ │ │ ┌──── 月份 (1-12) │ │ │ │ ┌──── 星期 (0-60周日) * * * * *常用 Cron 表达式对照表表达式含义0 9 * * *每天 09:00*/15 * * * *每 15 分钟0 9 * * 1每周一 09:000 0 1 * *每月 1 号零点*/5 * * * *每 5 分钟 秒级调度6 字段如*/30 * * * * *表示每 30 秒默认被拒绝需将环境变量CRON_ALLOW_SECONDS_SCHEDULE设为true才允许开启因为它会成倍增加调度压力和数据库写入。三、三步创建你的第一个定时任务以 Aegra 内置的 examples/cron_example/ 示例为例这个示例 Agent 每分钟打卡一次把运行计数写入会话历史。第 1 步启动 Aegra 服务调度器默认开启uv run aegra dev --no-db-check第 2 步创建线程和 Assistant绑定线程模式client get_client(urlhttp://localhost:2026) thread await client.threads.create() assistant await client.assistants.create(graph_idcron_example)第 3 步创建 Cron 任务run await client.crons.create_for_thread( thread_idthread[thread_id], assistant_idassistant[assistant_id], schedule* * * * *, # 每分钟触发 input{messages: []}, ) print(fCron ID: {run[cron_id]})注意两点input是必填项每次触发都会基于这个载荷启动一次运行即使 Agent 不需要输入也要传input{}否则会被 422 拒绝。创建成功后会立即执行第一次运行响应返回的是Run对象如果想先创建但暂不运行传入enabledFalse即可跳过首次触发。完整可运行的示例脚本见 examples/cron_example/setup.py。四、无状态 vs 线程绑定两种触发方式模式 1无状态 Cron默认每次触发都在全新线程中运行适合独立、互不依赖的周期性任务如每日早报。默认会在运行结束后自动删除临时线程如果想保留下来事后检查传入on_run_completedkeeprun await client.crons.create( assistant_idagent, schedule0 9 * * *, on_run_completedkeep, # 保留线程以便查看 input{messages: [{role: user, content: Daily report}]}, )⚠️ 选择keep后线程会不断累积长期部署建议配合线程 TTL 策略或单独的清理任务。模式 2线程绑定 Cron把任务绑定到指定线程每次触发延续同一会话Agent 可以记得上次运行发生了什么——适合周报汇总、持续监控类场景。绑定线程删除时关联的 Cron 会被级联自动删除。五、时区设置让任务按当地时间触发默认情况下 Cron 表达式按UTC时间计算。想让任务按纽约或上海时间触发只需传入一个 IANA 时区名run await client.crons.create( assistant_idagent, schedule0 9 * * *, # 纽约时间 09:00 timezoneAmerica/New_York, input{messages: [{role: user, content: Morning standup}]}, )✅ 时区会随任务记录一并存储内部自动转换为 UTC 调度❌ 传入无效的时区名会返回 HTTP 422 错误 更新schedule时如果不改时区原时区会被自动保留六、管理定时任务更新、暂停与搜索更新任务参数支持更新的字段包括schedule、enabled、input、config、metadata、timezone、durabilityupdated await client.crons.update( cron_idcron_id, schedule0 10 * * *, # 改为每天 10 点 enabledFalse, # 同时暂停 )暂停与恢复暂停不会删除任务只是让调度器忽略它随时可恢复await client.crons.update(cron_idcron_id, enabledFalse) # 暂停 await client.crons.update(cron_idcron_id, enabledTrue) # 恢复搜索、统计与删除crons await client.crons.search(assistant_idagent) # 按 Assistant 查 total await client.crons.count(metadata{team: research}) # 按元数据统计 await client.crons.delete(cron_idcron_id) # 永久删除API 层实现见 libs/aegra-api/src/aegra_api/api/crons.py请求模型定义见 libs/aegra-api/src/aegra_api/models/crons.py。七、高级配置调度器环境变量通过环境变量可精细调整调度行为完整说明见 docs/reference/environment-variables.mdx环境变量默认值说明CRON_ENABLEDtrue是否启用后台调度器设为false可停摆调度但保留数据CRON_POLL_INTERVAL_SECONDS60调度器检查到期任务的轮询间隔秒CRON_CLAIM_DURATION_SECONDS300任务被认领后的租约时长秒CRON_MAX_PER_USER100单个用户可拥有的任务上限0表示不限制CRON_ALLOW_SECONDS_SCHEDULEfalse是否允许秒级6 字段调度CRON_TICK_BATCH_SIZE100单个实例每次轮询最多触发的任务数超过单用户上限时创建新任务会返回 HTTP 429。八、注意事项与最佳实践至少一次at-least-once投递语义若任务在认领后、提交前发生故障租约到期后另一轮轮询会重新触发该任务。因此请让 Agent 的运行逻辑保持幂等避免重复执行产生副作用。定时触发不走请求级鉴权创建任务时会完整走鉴权链但每次定时触发是以任务所有者身份在后台执行不会再触发auth.on(...)处理器。如果需要对每次运行做权限控制请写在 Graph 内部。️metadata 不会复制到触发的 Run 上metadata仅用于任务记录本身的搜索与过滤。到期自动停止设置end_time必须为未来时间后任务在end_time之后会自动失效。九、相关文件与文档索引资源路径Cron 官方指南docs/guides/cron.mdx可运行示例每分钟打卡 Agentexamples/cron_example/setup.py示例 Graph 源码examples/cron_example/graph.py调度器核心实现libs/aegra-api/src/aegra_api/services/cron_scheduler.pyCron API 路由libs/aegra-api/src/aegra_api/api/crons.py环境变量参考docs/reference/environment-variables.mdxCron E2E 测试libs/aegra-api/tests/e2e/test_crons/test_crons.py掌握 Cron 表达式、时区设置和两种线程模式后你就可以让 Aegra 里的 AI Agent 在任何你需要的时间点自动上岗了——从每日晨报到每周巡检全部自动化。赞分享后端人工智能AI Agent【免费下载链接】aegraOpen source alternative to LangGraph Platform (now LangSmith Deployments) - Self-hosted AI agent backend with FastAPI and PostgreSQL. Zero vendor lock-in, full control over your agent infrastructure.项目地址https://gitcode.com/gh_mirrors/ae/aegra点击查看免费下载相关推荐VoltAgent Cron Trigger 完整指南用 cron 表达式为 Agent 与工作流编排定时任务VoltAgent Cron Trigger 完整指南用 cron 表达式为 Agent 与工作流编排定时任务 Cron Trigger 是 VoltAgen人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音mbart-large-50-many-to-many-mmt性能优化指南提升翻译速度与准确性的7个秘诀mbart large 50 many to many mmt性能优化指南提升翻译速度与准确性的7个秘诀 想要让mbart large 50 many to创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询