SAP工具箱 增强后台作业调度改进-准点调度

前言

因为标准事务代码SM36调度的后台作业功能相对比较简单.项目中需要针对后台作业做很多特殊的处理,这些处理有些可以通过标准功能实现, 有些无法通过标准功能实现. 

为了简化后台作业的定义及丰富后台作业的控制,开发了这个后台作业二次调度程序

ZBC_IF_JOB_SCHEDULE

介绍

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 增强后台作业调度程序详解(一)

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 增强后台作业调度程序详解(二)

改进点

在原有的存粹通过间隔调度的作业中. 该作业每次执行的时间可能因为调度器本身的延迟执行而导致作业的持续延迟执行

比如: 作业定义每小时执行一次, 间隔3600秒. 第一次执行 9:00 调度器每分钟执行一次,10:00执行时,会执行到这个作业, 但是如果10:00的调度器本身的作业被系统延迟, 则调度器调度的作业也会被延迟执行. 这个延迟存在滚动效应,逐渐的, 会发现原来的整点执行的作业会被推迟到整点半执行.

本来这种延迟没什么问题.

但是如果期望通过整单/半点 来控制多个相关作业的调度时间,这种延迟就会导致控制失效.

当然,如果作业有严格的顺序, 最好通过定义成同一个作业的步骤来实现. 本文只讲怎么确保作业正点执行.不考虑其它. 

按天调度的改进

按天执行的作业,可以通过设置 作业允许期间控制 . 第一个期间控制开始执行的时间及允许延迟的时间. 这样在计算作业的间隔时,会减去这个结束时间和开始时间持续的秒.

如图所示. 当每天08:00:00调度器执行时会把昨天延迟的作业修正到准时执行.

7c835cc394fa6ffb86f6da9f128f9040.png

按小时调度的改进

指定作业的定点时间. JOB_FIX_TIME

定点时间触发的前提条件:时间间隔必须是3600的整数倍.

作业是否调度取决于两个因素:

1.作业周期达到.当前时间戳-作业上次时间戳 > 作业间隔

2.定点达到,此时会检查当前时间戳-作业上次时间戳> 作业间隔/2 并且,当前时间是定点的时间(定点时间只到分钟,所以只比对时/分).

上述两条任意满足一个,则作业执行.

这样就可以确保作业在指定的定点执行.

比如作业

维护方式: hhmmss 时间格式 其中秒的部分无需关注

示例1(每个小时)  000000 表示每个小时整点执行

示例2(每两小时执行):  081000 (表示从08:10开始,系统考虑每两个小时的定点调度)

注意事项: 定点时间维护不全,并不会导致作业在未定点的时间内不执行. 因为作业周期达到也会被调度执行

但如果同时勾选JOB_TIME_CONTROL. 且维护了定点执行, 则作业将严格的按照定点时间执行. 可能的问题: 如果调度作业被延迟执行. 则可能导致定点作业无法执行

2dc60afadb35361051cad8b2db123b0f.png

源码获取

后台作业调度旧版本的代码可以在之前的公众号文章中获取. 如果期望新版源码. 打赏文章200豆联系392077索取.

总结

ZBC_IF_JOB_SCHEDULE用于增强调度后台作业. 在标准调度基础上添加了很多实用功能. 管理人员可以通过SE16N维护表ZTIF002BJ,实现批量维护,调整后台作业.

在项目实践中,极大简化了的作业的定义,调整过程.并附加了很多实用功能.用于定义更复杂的作业.

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值