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

Autosys作业每季度起始后第40天触发规则配置咨询

Autosys季度顺延触发规则实现方案

Autosys原生时间规则无法直接支持「季度起始日+40天+非工作日顺延」的复合规则,可通过以下两种成熟方案实现:


方案1:Autosys自定义日历+调度规则(推荐,原生实现稳定性更高)

适合规则固定、无需频繁调整的场景,完全通过Autosys自带能力实现,无需额外开发脚本:

  • 第一步:提前计算未来3-5年每季度的原始触发基准日:以每季度1号为起始日,加39天(含起始日)得到第40天的原始日期,比如2024年的基准日为2月9日、5月10日、8月9日、11月9日。
  • 第二步:创建Autosys全局工作日历CHN_WORKDAY_CAL,将所有周六、周日、公司法定节假日标记为非工作日,调休补班的日期标记为工作日。
  • 第三步:创建自定义触发日历QUARTER_40DAY_CAL,将第一步计算的所有原始基准日导入,同时配置顺延规则adjust: workday,即遇到非工作日自动顺延到下一个符合工作日历的日期。
  • 第四步:作业定义中绑定触发日历,设置执行时间即可。

作业定义示例:

/* Autosys JIL 配置示例 */
insert_job: QUARTER_40DAY_BIZ_TASK
job_type: CMD
command: /opt/biz/exec_task.sh
machine: biz_app_server_01
run_calendar: QUARTER_40DAY_CAL
start_times: "09:30"
timezone: PRC
owner: autosys_ops
permission: gx,mx
description: 每季度第40天(非工作日顺延)执行的业务作业

方案2:自定义日期校验脚本+每日触发(灵活度更高,适合规则频繁调整场景)

无需提前维护日历,通过脚本自动计算触发日,适合临时需求或者规则会动态调整的场景:

  • 第一步:开发日期校验脚本,逻辑为:先计算当前季度的第40天原始日期,再自动顺延跳过周末/节假日,判断当日是否为最终触发日,符合条件返回0,不符合返回1。
  • 第二步:Autosys作业配置为每日固定时点触发,先执行校验脚本,返回0才启动实际业务脚本,否则直接退出。

Python校验脚本示例:

import datetime
from datetime import timedelta

# 可自定义公司法定节假日列表
HOLIDAYS = {
    datetime.date(2024, 5, 1), datetime.date(2024, 5, 2), datetime.date(2024, 5, 3),
    # 按需补充后续年份节假日即可
}
# 可自定义调休补班的周末列表
WORK_WEEKENDS = {
    datetime.date(2024, 4, 28), datetime.date(2024, 5, 5)
}

def is_valid_workday(date):
    if date in HOLIDAYS:
        return False
    if date in WORK_WEEKENDS:
        return True
    return date.weekday() < 5 # 0-4为周一到周五

def is_trigger_day():
    today = datetime.date.today()
    # 计算当前季度起始日
    quarter_start_month = (today.month - 1) // 3 * 3 + 1
    quarter_start = datetime.date(today.year, quarter_start_month, 1)
    # 计算第40天原始日期(含起始日所以加39天)
    raw_trigger = quarter_start + timedelta(days=39)
    # 顺延到下一个工作日
    final_trigger = raw_trigger
    while not is_valid_workday(final_trigger):
        final_trigger += timedelta(days=1)
    return today == final_trigger

if __name__ == "__main__":
    exit(0 if is_trigger_day() else 1)

作业command配置示例:python /opt/script/check_trigger.py && /opt/biz/exec_task.sh


校验验证

作业配置完成后可执行autorep -J 作业名 -c查询未来1年的触发时间,和预期计算结果对比确认规则生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:06:08