Autosys中是否支持判断作业未失败且未运行的条件?
在Autosys中判断每周导入任务的指定状态
完全可以实现这个判断,核心是利用Autosys自带的状态查询命令和作业条件配置,以下是两种常用实现方式:
1. 脚本/命令行手动验证
通过autorep命令拉取每周任务的状态,再用shell逻辑过滤判断:
# 替换为你的每周任务名称 WEEKLY_JOB="weekly_import_task" # 获取任务当前状态(提取状态列) JOB_STATUS=$(autorep -J $WEEKLY_JOB -s | awk '/^'"$WEEKLY_JOB"'/ {print $3}') # 判断逻辑:排除失败类状态(FAILURE、TERMINATED)和运行中状态(RUNNING、STARTING) if [[ ! "$JOB_STATUS" =~ ^(FAILURE|TERMINATED)$ && ! "$JOB_STATUS" =~ ^(RUNNING|STARTING)$ ]]; then echo "满足条件:每周任务未失败且未运行" else echo "不满足条件" fi
2. 配置作业自动依赖判断
如果要让后续流程作业自动基于这个条件触发,可以在作业定义中使用condition属性,结合Autosys内置的job_status()函数:
insert_job: daily_flow_job job_type: CMD command: /opt/scripts/run_daily_flow.sh # 条件:每周任务未失败(非FAILURE/TERMINATED)且未运行(非RUNNING/STARTING) condition: (job_status(weekly_import_task) != FAILURE) && (job_status(weekly_import_task) != TERMINATED) && (job_status(weekly_import_task) != RUNNING) && (job_status(weekly_import_task) != STARTING)
补充说明
Autosys中作业状态分类参考:
- 失败类状态:
FAILURE、TERMINATED - 运行中状态:
RUNNING、STARTING - 符合"未失败且未运行"的状态:
SUCCESS、INACTIVE、WAITING、RESTART、ON_HOLD、ON_ICE等
内容的提问来源于stack exchange,提问作者dusty
相关产品推荐
相关产品推荐

