APP下载

银行中间业务系统日终任务并行化研究

2021-09-14彭秋生

电脑知识与技术 2021年22期
关键词:中间业务任务

彭秋生

摘要:随着业务量增长和数据量的增加,银行中间业务系统日终任务的运行速度越来越慢,最坏情况下耗时达数十个小时,严重威胁到第二天正常业务的开展。本文对银行中间业务系统日终任务运行机制进入了深入分析,提出了日终任务并行处理方案,将日终任务运行时间从30多个小时降低至3个小时,速度整整提升了10倍。本文提出的任务并行处理平台,具有良好的通用性,为后续其他任务的并行处理提供了基础平台。

关键词:中间业务;日终;任务;并行;串行

Abstract: With the increase of transactions and data, the running time of the day-end tasks in the bank's intermediate business system is getting longer. It takes dozens of hours at worst, which seriously threatens the normal business the next day. The old running way of the end-of-day tasks  is discussed,and a new parallel operating mechanism for day-end tasks was proposed. The  running time of day-end tasks is cut down from more than 30 hours to 3 hours in the new mode, and the speed has been increased by 10 times. The task parallel processing platform is proposed at the same time, and it has good versatility and provides a basic platform for subsequent parallel processing of other tasks.

Key words: intermediate business; end-of-day; tasks; parallel; serial

近年来,银行中间业务持续增长,已经成为商业银行主要收入来源之一[1]。交易量增长,数据量暴增,系统日终任务处理速度越来越慢,遇到季末结息、年终决算等关键时点,日终耗时达几十个小时,影响下一天正常业务的开展,严重威胁系统安全和业务稳定,加快日终运行速度迫在眉睫。最直接的办法是升级硬件,但系统搭建在IBM小型机上,硬件价格昂贵,升级成本高。经分析,在日终运行过程中,繁忙的只是少量硬件资源,大量硬件资源处于空闲状态。因此,优化应用软件,充分利用空闲的硬件资源,加快任务处理速度,是目前符合实际的解决方案。

1 现有日终任务运行机制

中间业务日终由一系列的任务组成,于每晚日结时启动。启动后,系统自动按配置好的顺序逐个调度任务,直至所有的任务成功执行完毕。中间一旦某个任务出错,系统会中止整个日终,并自动发送报警信息给运维值班人员。运维人员解决完问题后,再次启动日终,系统自动从失败的地方开始断点续做。日终任务处理流程如下:

1)日终任务处理流程:

(1)扫描日终任务表,按顺序查找当天“待处理”或“处理失败”的任务,进入循环:

若取到当前任务为空(表示任务全部已处理完),则跳出循环,否则进入下一步将取到的当前任务状态置为“正在处理”,并提交事务(commit)[2]执行当前任务,根据执行结果进行处理:若任务执行成功,则将任务状态置为“处理成功”,提交事务(commit);若任务执行出错,则先回滚事务(rollback)[2],再将任务状态置为“处理失败”,并提交事务(commit),再跳出循环。取下一个任务,回到第①步。

(2)再次扫描当天所有日终任务,若存在“待处理”或“处理失败”的任务,则表示任务有异常,将日终状态置为“处理失败”;若任务全部为“处理成功”,则将日终状态置为“处理成功”。

从流程中可以看出日终任务采用的是同步处理机制,即任务组成一个串行队列,前一个任务执行完,后一个任务才开始执行,同一时间只有一个任务在执行。在同步处理机制下,日终整体执行时间T等于所有任务执行时间之和,即T = T1+T2+...+Tn ,其中n为日终任务数量。

同步处理机制下,任务之间严重按顺序执行,当前一个任务的执行时间过长或者出现异常,后面的所有任务都必须等待。最坏情况下,任务到第二天还没有全部执行完,导致第二天无法正常开业。为了解决此问题,就必须加快任务的处理速度,减少任务之间的等待时间。由于任务数量多,在同步处理机制下,提升单个任务的处理速度对整体速度提升帮助不大。因此,必须打破原有的同步处理机制,让尽可能多的任务并行处理,才能达到减少任务等待时间的目的。

2 任务并行处理方案

任务并行处理是指同一时间执行多个任务,上一个任务未执行完,下一个任务就开始执行,下一个任务的执行不依赖于上一个任务的结果,任务之间等待时间几乎为0。任务并行处理的前提是任务之间没有依赖关系,有依赖关系的任务必须采用串行处理,否则会破坏任务的依赖关系,如“统计报表生成”任务的数据来源于“数据统计”任务,二者之间有依赖关系,“数据统计”任务必须在“统计报表生成”任务之前执行。

任务的先后依赖关系可以采用“前置任务法”实现。每个任务设置一个前置任务列表,任务调度前先检查对应的前置任务是否全部成功执行完毕。若前置任务全部成功执行完毕,则调度当前任务;若有前置任务未执行完或执行失敗,则不调度当前任务,跳到下一个任务,开始同样的检查调度流程。日终任务并行处理流程如下:

猜你喜欢

中间业务任务
丢弃“正确的废话”
浅谈任务型教学在高中英语语法教学中的应用
保定银行股份有限公司中间业务收入情况表
中国农业发展银行河北省分行中间业务收入情况表
河北省各城市商业银行中间业务收入情况表
中国农业发展银行河北省分行中间业务收入情况表
对国有商业银行中间业务开展情况的调查