You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hasura中创建、部署、运行及管理Cron Jobs?

我来一步步给你拆解在Hasura里搞定Cron Jobs的全流程,从创建到部署、运行再到日常管理,全给你讲明白,都是实战里常用的操作:

在Hasura中创建Cron Jobs

Hasura支持两种创建方式:可视化Console操作和元数据文件管理,看你习惯哪种。

方式一:通过Hasura Console可视化创建

这是最直观的方式,适合快速测试:

  • 打开你的Hasura Console,切换到Events标签页,再点Cron Triggers子标签
  • 点击右上角的Create Cron Trigger,按要求填信息:
    • Name:给触发器起个唯一的名字,比如daily-active-user-summary,别重名就行
    • Cron Expression:定时规则,用标准Cron语法就行,比如0 0 * * *是每天凌晨执行,0 */6 * * *是每6小时执行一次,不确定规则的话可以自己核对时间字段(分、时、日、月、周)
    • Webhook URL:定时任务要触发的HTTP接口,比如你自己的业务API,或者Hasura的Action端点,比如http://your-backend-service.com/generate-summary
    • 可选配置:
      • Payload:要传给Webhook的请求体,JSON格式,比如{"time_range": "24h"}
      • Headers:自定义请求头,比如加认证密钥{"X-Auth-Token": "your-secret"}
      • Retry Configuration:失败后的重试规则,比如最多重试3次,每次间隔60秒
      • Enabled:勾选的话创建后就立即启用

方式二:通过元数据文件创建(适合版本控制)

如果你的项目用Git管理元数据,推荐这种方式,方便批量部署:

  • 创建一个cron_triggers.yaml文件,内容示例:
cron_triggers:
- name: daily-active-user-summary
  cron_expression: "0 0 * * *"
  webhook: "http://your-backend-service.com/generate-summary"
  payload: {"time_range": "24h"}
  headers: {"X-Auth-Token": "your-secret"}
  retry_conf:
    num_retries: 3
    retry_interval_seconds: 60
    timeout_seconds: 30
  enabled: true
  • 用Hasura CLI命令把元数据应用到Hasura实例:
hasura metadata apply

如果是远程实例,加上端点参数:

hasura metadata apply --endpoint https://your-hasura-instance.com
Cron Jobs的部署

部署分本地开发和生产环境两种场景:

  • 本地开发:如果用Docker Compose跑Hasura,不管是Console创建还是元数据应用,只要Hasura服务重启(或者自动加载元数据),触发器就会生效,直接就能测试定时任务
  • 生产部署:
    • 要是用Hasura Cloud,Console里创建的触发器会自动同步到生产环境(只要你操作的是同一个项目)
    • 自托管的Hasura:先确保元数据已经同步到生产实例(用上面的hasura metadata apply命令),然后可以通过Hasura的API重载元数据,或者重启生产服务,让新的触发器生效。重载元数据的API请求:
      curl -X POST https://your-production-hasura.com/v1/metadata \
        -H "Content-Type: application/json" \
        -d '{"type": "reload_metadata", "args": {}}'
      
Cron Jobs的运行与监控

创建完之后,得能看运行情况,排查问题:

  • 查看执行日志:在Console的Cron Triggers列表里,点触发器名称进入详情页,就能看到所有执行记录,包括执行时间、状态(成功/失败/重试中)、请求和响应内容,失败的话还能看到错误原因
  • 手动触发测试:不用等定时时间,在触发器详情页点Run Now按钮,就能立即执行一次,用来验证Webhook是否正常工作,参数有没有传对
  • 监控失败任务:Hasura会按照你设置的重试规则自动重试失败的任务,要是一直失败,就去看日志里的错误信息,比如Webhook超时、返回5xx错误,然后针对性修复你的API或者调整重试规则
Cron Jobs的日常管理

日常维护少不了这些操作:

  • 编辑触发器:在Cron Triggers列表里点Edit按钮,就能修改Cron表达式、Webhook地址、Payload等配置,保存后立即生效
  • 禁用/启用:列表里有个Enabled开关,不想让任务执行的时候直接关掉,需要的时候再打开,不用删除重建
  • 删除触发器:点Delete按钮,确认后就会移除这个触发器,注意删除后没法恢复,操作前要确认清楚
  • 批量管理:用元数据文件管理的话,直接修改yaml里的内容,然后hasura metadata apply就能批量更新多个触发器,适合有大量定时任务的场景

内容的提问来源于stack exchange,提问作者ecthiender

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:15:19