ABAP RFC多进程并发执行实现方式

背景

在其他开发语言中,实现多进程是很简单,尤其是GO语言只需要一行代码就能开启routine实现Concurrency(注意,Concurrency Is Not Parallelism)。但在ABAP中,好像只能将需要并行处理的逻辑封装成RFC函数,异步并行调用的方式曲线实现多进程并行执行,以充分利用ABAP服务器的Dialog进程数,缩短数据的处理时间。

需求

有一张数据条数非常多的内表,需要循环所有数据执行一段非常复杂的逻辑对内表的数据做处理,如果串行处理每一条数据,需要运行三个多小时,完全无法满足业务需求。

分析

通过分析,数据模型及程序逻辑均无问题,复杂运算的程序逻辑已经优化到极致,但由于存在递归运算且要频繁调用大型CDS,处理时间的线性增加无可避免。

内表中的每一条数据均是独立的,不同sy-tabix的数据之间不存在交叉运算的情况。

服务器的Dialog进程非常充足,HANA数据库资源配置也完全足够。那么,是不是可以考虑并行执行,使内表中不同行的数据同时分别去跑复杂运算逻辑,使总体处理实现线性减少呢?

答案是可以的!但是需要将每行数据都会运行的复杂逻辑封装成RFC函数,然后在LOOP循环内并发调用函数即可。

测试案例说明

取出SBOOK表,传入主键,使用随机数乘以订票价格之后返回结果,SBOOK表中有9万多条数据。

ABAP RFC多进程并发执行实现方式

隐藏内容需要支付:¥15
立即购买 升级VIP
ABAP RFC多进程并发执行实现方式

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://www.gavindong.com/7849.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。

版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

email