昨天生产环境有个产品数据急需跑完我们系统流程,下午5点半,数据集成到了我们系统的接口表,数据从接口表到正式表的程序是用JOB运行的,半个小时运行一次。5点半的时候,这个JOB正在运行,没办法,只能等下次JOB运行才能抓到刚刚集成过来的数据。说来真是不巧,这个时间点有大量数据在跑,于是我就等,这一等就是一个小时,上个JOB 才跑完!于是第二个JOB紧接着启动起来,又是大批量的数据在运行,而这个产品排在了后面,于是我无奈的又等了40分钟,产品数据才进了正式表,这样算起来,从接口表到正式表一共用了100分钟!!!!而后面的流程,系统设计是调度方式运行,可以输入产品参数,手动进行处理,这样我就主动多了,直接就是输入产品参数,手动进行调度处理,后面的3个流程一共才用了20分钟!如果接口表进正式表的程序也是做成支持输入参数的手工调度程序,那整个流程跑下来,最多也就30分钟,而这次总共用了120分钟!而且在此期间,很多人在催你,问你什么时候能够处理完呀,我真是无奈,感觉很被动,我只能无奈的等着JOB慢悠悠的处理,而自己束手无策。。。。。。。
所以,通过我这次经历,希望大家在设计程序运行方式的时候,对于这种流程性很强的程序,千万不要设计成JOB运行,一定要做成支持输入参数的调度形式,这样你就主动的多,而且对于很急的数据,可以缩短处理时间,提高客户满意度,不会像我一样傻傻的无奈等待。。。