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

如何实现Autosys失败通知JIL:触发并传递失败作业名作为命令参数

最简失败通知器JIL实现思路

嘿,这个需求很明确,咱们来一步步梳理最简的实现思路,保证贴合你的需求:

1. 核心监听逻辑设计

首先要明确AutoSys JIL的触发规则:我们需要让通知器作业只要任意一个依赖作业失败就立即触发,而不是等待所有依赖作业完成。这里的关键是用OR条件串联每个依赖作业的失败状态判断,替代默认的“所有依赖完成”逻辑。

2. JIL脚本核心配置

直接上可复用的JIL代码示例,注释里讲清楚每个部分的作用:

# 定义失败通知器作业
insert_job: failure_notifier
job_type: command
# 用AutoSys内置变量传递触发的失败作业名
command: /opt/ops/scripts/alert_failure.sh "$AUTO_DEPENDENCY_JOB"
machine: your_autosys_machine_name
owner: ops_user
permission: gx,wx
date_conditions: 0  # 关闭日期条件,只要依赖触发就执行
# 列出所有需要监听的依赖作业
depends_on: job_order_process, job_data_sync, job_report_generation
# 核心条件:任意一个依赖作业失败即触发
condition: failure(job_order_process) OR failure(job_data_sync) OR failure(job_report_generation)

重点解释:

  • $AUTO_DEPENDENCY_JOB是AutoSys的内置变量,当作业被某个依赖作业的状态触发时,这个变量会自动填充触发它的依赖作业名称,完美解决“传递失败作业名”的需求。
  • condition里用OR连接每个依赖的failure()判断,确保只要有一个作业失败,通知器就立刻启动。

3. 故障上报脚本实现

接下来写接收参数的告警脚本(比如/opt/ops/scripts/alert_failure.sh),示例如下:

#!/bin/bash
# 接收传递过来的失败作业名
FAILED_JOB="$1"

# 记录告警日志,便于后续排查
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 作业 $FAILED_JOB 执行失败,触发告警" >> /var/log/autosys_alerts.log

# 示例1:调用内部告警API上报
curl -s -X POST \
  http://your-alert-system/api/v1/report \
  -H "Content-Type: application/json" \
  -d "{\"job_name\":\"$FAILED_JOB\",\"status\":\"failed\",\"source\":\"AutoSys\"}"

# 示例2:发送告警邮件给运维团队
echo "作业 $FAILED_JOB 执行失败,请及时排查!" | mail -s "AutoSys作业失败告警" ops-team@yourcompany.com

记得给脚本加执行权限:chmod +x /opt/ops/scripts/alert_failure.sh,并且确保AutoSys运行用户能访问该脚本路径。

4. 测试与验证

为了确保逻辑正确,可以做个快速测试:

  1. 手动标记某个依赖作业为失败状态(用sendevent -E FAILURE -J job_order_process命令)
  2. 检查AutoSys控制台,确认failure_notifier作业是否立即触发
  3. 查看告警脚本的日志或收件箱,确认是否收到包含正确作业名的告警

5. 可选优化点

  • 如果依赖作业数量很多,JIL里的condition会很长,可以考虑把依赖作业分组,或者用AutoSys的作业组(group)来简化配置,但本质还是围绕failure()和OR逻辑。
  • 可以给通知器作业设置max_run_alarm或者run_window,避免重复触发告警(比如同一个作业短时间内多次失败)。
  • 添加告警重试机制:如果上报接口调用失败,脚本可以自动重试几次,确保告警能送达。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:55