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

Autosys复杂场景下跨不同假日日历的作业依赖调度配置问题

Autosys多日历差异化依赖作业配置方案

核心配置思路

ABC作业的触发核心逻辑是两个前置作业的最新成功实例的BUS_DT一致,而非两个作业都必须在当日调度运行,基于这个逻辑拆分配置即可同时覆盖假日和非假日场景。

具体配置步骤

1. 前置作业基础配置保留不变

  • 123_J保持原15天假日日历绑定,运行窗口、业务日期计算规则、每周周二至周六的调度周期不变
  • 456_J保持原9天假日日历绑定,运行窗口、业务日期计算规则、每周周二至周六的调度周期不变
  • 两个作业均新增运行成功后的全局变量输出逻辑:将本次运行对应的BUS_DT写入Autosys全局变量池,变量名分别为123_J_LAST_BUS_DT、456_J_LAST_BUS_DT

2. 新增辅助校验作业ABC_CHECK_BUS_DT

  • 调度周期、运行窗口和ABC作业完全一致:每周周二至周六,美国东部时间04:00-05:00
  • 不绑定任何假日日历,确保每个调度日都能正常加载
  • 作业执行逻辑为shell或Python脚本,参考代码如下:
    # 读取两个前置作业的最新业务日期
    dt_123=$(autorep -G 123_J_LAST_BUS_DT | awk '{print $NF}')
    dt_456=$(autorep -G 456_J_LAST_BUS_DT | awk '{print $NF}')
    # 对比日期一致性
    if [ "$dt_123" == "$dt_456" ];then
      exit 0 # 校验通过
    else
      exit 1 # 校验不进入重试流程
    fi
    
  • 配置重试规则:每10分钟重试1次,重试窗口截止到美国东部时间05:00,最终失败后仅标记为FAILURE不触发告警

3. ABC作业依赖规则配置

将ABC作业的触发依赖设置为同时满足以下3个条件:

  • 条件1:s(123_J) OR s(123_J-1):123_J当日运行成功 或 上一个调度日运行成功(覆盖123_J当日为假日不运行的场景)
  • 条件2:s(456_J) OR s(456_J-1):456_J当日运行成功 或 上一个调度日运行成功
  • 条件3:s(ABC_CHECK_BUS_DT):辅助校验作业运行成功(确保两个前置作业的BUS_DT一致)

场景验证

正常非假日场景

两个前置作业当日均运行成功,BUS_DT均为前一天,校验通过,ABC作业按规则触发

123_J假日、456_J非假日场景(如示例中9月7日)

123_J当日不加载,取上一次成功实例的BUS_DT,456_J当日运行成功后BUS_DT与123_J最新BUS_DT一致,校验通过,ABC作业正常触发

共同假日场景

两个作业当日均不加载,最新BUS_DT一致时ABC作业触发,不一致则不会触发,符合业务预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:15:03