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

Automic作业步骤中脚本非零返回后如何继续执行后续任务?

在单个Automic作业步骤中实现异常捕获与监控脚本必执行

可以通过Shell/CMD的错误状态捕获+流程强制续行来实现,确保无论核心BTEQ脚本执行成功或失败,后置监控脚本都会被执行,同时保留核心脚本的执行状态用于日志记录。

针对Shell环境(Linux/Unix)的实现

直接在作业步骤中编写以下命令逻辑:

# 执行前置监控脚本
BTEQ "PRE_MONITORING.sql"

# 执行核心业务脚本,捕获返回码并强制流程继续
BTEQ "filename.sql" || true
# 保存核心脚本的执行状态
EXIT_CODE=$?

# 执行后置监控脚本,传入核心脚本的状态码(需POST脚本支持接收参数)
BTEQ "POST_MONITORING.sql" "$EXIT_CODE"

# 最终返回核心脚本的状态码,保证Automic作业的失败告警逻辑正常
exit $EXIT_CODE

关键逻辑说明:

  • || true:强制核心脚本执行失败时不终止整个Shell流程,确保后续命令能继续运行
  • EXIT_CODE=$?:捕获上一条BTEQ命令的返回值,0为成功,非0为失败
  • 后置监控脚本可通过传入的EXIT_CODE参数,将核心脚本的实际执行状态写入DB表
  • 最后exit $EXIT_CODE:让Automic作业步骤的最终状态与核心脚本保持一致,不影响原有作业的失败触发机制

针对Windows CMD环境的实现

如果Automic作业步骤基于Windows命令行,可使用以下逻辑:

:: 执行前置监控脚本
BTEQ "PRE_MONITORING.sql"

:: 执行核心业务脚本
BTEQ "filename.sql"
:: 保存核心脚本的执行状态
set EXIT_CODE=%errorlevel%

:: 执行后置监控脚本,传入状态码
BTEQ "POST_MONITORING.sql" %EXIT_CODE%

:: 最终返回核心脚本的状态码
exit /b %EXIT_CODE%

关键逻辑说明:

  • %errorlevel%:Windows CMD中捕获上一条命令的返回码
  • exit /b %EXIT_CODE%:仅终止当前CMD脚本,返回指定状态码给Automic作业步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:11