gpt4 book ai didi

parallel-processing - 开始新任务的并行处理 - 前端屏幕超时

转载 作者:行者123 更新时间:2023-12-01 09:47:03 25 4
gpt4 key购买 nike

我正在运行一个 ABAP 程序来处理大量数据。 SAP 文档提供了我应该使用的信息添加了 STARTING NEW TASK 以处理数据的远程功能模块。

所以我的程序首先选择所有数据,将数据打成包,然后调用一个带有数据包的功能模块进行进一步处理。

这就是我的伪代码:

Select KEYFIELD from MYSAP_TABLE into table KEY_TABLE package size 500.

append KEY_TABLE to ALL_KEYS_TABLE.

Endselect.


Loop at ALL_KEYS_TABLE assigning <fs_table> .

call function 'Z_MASS_PROCESSING'
starting new TASK 'TEST' destination in group default
exporting
IT_DATA = <fs_table> .

Endloop .

但令我惊讶的是,我使用对话进程而不是后台进程来调用我的功能模块。

所以现在我遇到了一个问题,因为超时,我的一个对话进程在 60 分钟后被杀死。

对我来说,STARTING NEW TASK 似乎不是并行处理海量数据的正确解决方案。

还有什么选择?

最佳答案

如前所述,这不是一个简单的主题,只需几行代码即可解决。要获得预期 yield ,您必须以深思熟虑的方式执行的一般步骤是:

1) 获得可用于并行处理的免费工作进程

2) 将您的数据分割成要处理的包

3) 为每个具有可用工作进程的包异步调用支持 RFC 的功能模块。处理等待空闲工作进程,如果包 > 可用进程

4) 异步接收结果

5) 等待一切处理完毕,再次合并数据,确保每个包都得到妥善处理

虽然只发布链接是不好的做法,但代码很长,会使这个答案变得非常困惑,因此请查看以下链接:

Example1-aRFC

Example2-aRFC

Example3-aRFC

可以找到其他 RFC 变体(例如 qRFC、tRFC 等)here有简短的描述,但遗憾的是无法让您进一步了解它们。

编辑:

Regarding process type of aRFC:

In parallel processing, a job step is started as usual in a background processing work process. (...)While the job itself runs in a background process, the parallel processing tasks that it starts run in dialog work processes. Such dialog work processes may be located on any SAP server.

服务器由 GROUP 指定(默认值:parallel_generators),请参阅事务 RZ12 并且可以拥有自己的资源以进行并行处理。如果您的过程超时,您必须将包分成不同大小。

关于parallel-processing - 开始新任务的并行处理 - 前端屏幕超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com