name: error_retry description: try_catch + wait + retry 模式:外部 API 偶發掛掉時自動重試 flow: - "input >> ON_SUCCESS >> try_call" - "try_call >> ON_SUCCESS >> done" - "try_call >> ON_FAIL >> wait_a_bit" - "wait_a_bit >> ON_SUCCESS >> retry_call" - "retry_call >> ON_SUCCESS >> done" - "retry_call >> ON_FAIL >> final_fail_notify" config: try_call: component: http_request url: "{{input.target_url}}" method: POST body_json: payload: "{{input.payload}}" wait_a_bit: component: wait seconds: 5 # 第二次嘗試。生產環境通常 retry 2-3 次配指數 backoff retry_call: component: http_request url: "{{input.target_url}}" method: POST body_json: payload: "{{input.payload}}" _retry: 1 done: component: comp_passthrough # 純記錄成功,下游若需要可繼續鏈 final_fail_notify: component: telegram chat_id: "{{secret.LEO_TELEGRAM_CHAT_ID}}" text: | ⚠️ workflow {{input.workflow_name}} 兩次重試都失敗 target: {{input.target_url}} last error: {{retry_call.error}}