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

Google Workflow自定义重试谓词实现内容校验重试运行报错咨询

问题根因
  • Google Workflows 自定义重试谓词子工作流的入参由系统固定传入,不支持自定义参数列表,系统默认会传入三个参数:error(try块中抛出的错误内容)、http_response(HTTP调用响应对象)、retry_count(当前已重试次数),你定义的params: [dayName]和系统传入的参数不匹配,直接触发运行时错误。
  • 重试逻辑写反:谓词返回True时才会触发重试,返回False时会终止重试流程直接抛出错误。
  • 重试等待配置不符合需求:当前配置初始延迟为2秒,和你需要的10秒重试间隔不符。
修复后代码
main:
  steps:
    - first_step:
        try:
            steps:
                - getCurrentDay:
                    call: http.get
                    args:
                        url: https://us-central1-workflowsample.cloudfunctions.net/datetime
                    result: currentDateTime
                - setFromCallResult:
                    assign:
                        - dayName: ${currentDateTime.body.dayOfTheWeek}
                - whatIsToday:
                    call: sys.log
                    args:
                        data: ${dayName + " is actually a day"}
                        severity: "INFO"
                - callRetry:
                    switch:
                        - condition: ${dayName == "Thursday"}
                          raise: ${dayName}                                    
        retry:
            predicate: ${my_own_predicate}
            max_retries: 5
            backoff:
                initial_delay: 10
                max_delay: 10
                multiplier: 1
    - last_step:
        return: "OK"

my_own_predicate:
  params: [error]
  steps:
    - checkRetryCond:
        switch:
            - condition: ${error == "Thursday"}
              return: True
    - otherwise:
        return: False
关键改动说明
  1. 把my_own_predicate的入参修改为系统传入的error参数,直接接收你抛出的日期字符串
  2. 调整判断逻辑:当抛出的错误为Thursday时返回True,触发重试
  3. 修改退避配置,初始延迟和最大延迟都设为10,乘子为1,保证每次重试间隔固定为10秒

内容的提问来源于stack exchange,提问作者bobby.dreamer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:09:03