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

如何为JCL作业添加SCHEDULE/STARTBY实现定时周期性执行?

JCL作业周期性自动执行的实现方案

在MVS环境中,实现JCL作业每日固定时间自动执行,最常用的方式就是利用JOB语句的SCHEDULE参数,STARTBY则多用于指定作业的最早启动时机,以下是具体的配置方法:

一、用SCHEDULE配置周期性执行

SCHEDULE是JOB语句的扩展参数,直接定义作业的重复执行规则,支持每日、每周、每月等周期模式。

1. 每日固定时间执行示例

//DAILYJOB JOB (PROD_ACCT),'DAILY DATA PROCESS',CLASS=B,
//       SCHEDULE=(DAILY,DATE=0000,TIME=0200)
//STEP01 EXEC PGM=DATA_LOAD
//INPUT DD DSN=PROD.DATA.INPUT,DISP=SHR
//OUTPUT DD DSN=PROD.DATA.OUTPUT,DISP=(NEW,CATLG,DELETE)
//...
  • DAILY:指定周期为每日执行
  • DATE=0000:表示从作业提交当日开始循环执行(若要指定起始日期,可改为DATE=20240601这样的格式)
  • TIME=0200:指定每日凌晨2点启动作业

2. 工作日(周一至周五)执行示例

如果只需要在工作日执行,可添加DAY参数:

//WEEKDAYJOB JOB (PROD_ACCT),'WEEKDAY BATCH',CLASS=B,
//       SCHEDULE=(WEEKLY,DATE=20240601,TIME=0300,DAY=(MON,TUE,WED,THU,FRI))
//STEP01 EXEC PGM=REPORT_GEN
//...
  • WEEKLY:周期为每周
  • DAY=(MON,TUE,WED,THU,FRI):限定仅周一至周五执行

二、STARTBY的用法(配合调度或单次延迟)

STARTBY主要用于指定作业最早可被调度执行的时间,通常和SCHEDULE配合使用,或者用于单次作业的延迟启动:

1. 配合SCHEDULE确保启动时间

//SCHEDJOB JOB (PROD_ACCT),'SCHEDULED BATCH',CLASS=B,
//       SCHEDULE=(DAILY,TIME=0200),STARTBY=0200
//STEP01 EXEC PGM=FILE_BACKUP
//...

这里STARTBY=0200确保作业不会在凌晨2点前被调度,和SCHEDULE的TIME参数形成双重约束,避免系统负载过高时提前执行。

2. 单次延迟启动

如果只需要让作业在某个特定时间单次执行,直接用STARTBY即可:

//ONETIMEJOB JOB (PROD_ACCT),'ONE-TIME RUN',CLASS=B,
//       STARTBY=20240601/0800
//STEP01 EXEC PGM=DATA_EXPORT
//...
  • 20240601/0800:指定2024年6月1日上午8点启动作业

三、关键注意事项

  • 不同JES版本(JES2/JES3)对SCHEDULE参数的支持细节可能有差异,需参考你所在系统的官方文档确认可用参数。
  • 提交带SCHEDULE的作业后,系统会自动生成后续周期的作业实例,可通过JES命令(如JES2的$DJ)查看待执行的作业队列。
  • 若要终止周期性调度,可使用系统命令(如JES2的$T JOBxxxx,SCHEDULE=CANCEL,其中JOBxxxx是作业编号)取消循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:15:27