如何通过服务流程进行分批并发处理

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何通过服务流程进行分批并发处理


服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程化设计编排成全新的应用服务,以支持更加复杂的业务场景。


例如基础数据分发到多个系统、数据消费需要从多源取数、基于某个数据参数处理不同的集成过程等等。


为了帮助大家快速掌握服务流程的使用方法,我们推出了系列文章,通过11个典型案例向大家介绍服务流程的高级技巧。


在上期集成服务流程典型案例系列文章中,我们为大家介绍了服务流程的第10个典型案例:如何通过服务流程调用微服务集成


本期,小编为大家介绍第11个典型案例:如何通过服务流程进行分批并发处理,通过需求场景介绍和分批流程、主业务流程两个小案例进行讲解。




需求场景介绍


为了降低服务流程在同步大批量数据时发生OOM的风险,集成云不允许将超过20M的数据一次性加载到服务流程内存中。


因此,服务流程提供了一个解决方案:将大批量数据分批在流程内执行,既能通过服务流程解决繁杂的业务,又可以免除无法在服务流程内运行大数据量的烦恼。


服务流程案例详解

2.1 分批流程(实现分批)


本例以集成平台执行日志表作为demo来演示分批效果。


首先,需配置分批流程属性,包括【基本信息】、【流程变量】和【依赖资源】。其中,【流程变量】包括下一批数据的最小ID“min_id(长整数)”、总批数“batch_count(整数)”、当前批主键ID“ids(长整数)”;【依赖资源】中引入数据源“预置当前苍穹(cn)”,主流程“batch_demo(start_flow)”。


具体的配置界面如下图所示:


分批流程属性配置界面


接着,配置分批流程图:根据ids查询数据,将每10条日志作为一批数据,并启动主流程“batch_demo”,如下图所示:


分批流程图


接下来,小编为大家详细介绍每个节点的内容。


节点【查询第一批数据】用于查询数据(每次10条),其中“fstate”为过滤条件,可根据实际情况更改。


【查询第一批数据】脚本示例


节点【启动服务流程】将上一步查询出的ids作为输入参数,启动服务流程“batch_demo”。


【启动服务流程】脚本示例


节点【设置下一批的最小ID并递增批数】准备查询下一批数据,并统计批次数。


【设置下一批最小id并递增批数】脚本示例


节点【查询下一批数据】用于查询下一批数据,并且连接【启动服务流程】节点。只有当ids为空时,流程才会结束。


【查询下一批数据】脚本示例


2.2 主业务流程(根据分批ids处理业务)


主业务流程“batch_demo”根据ids获取每一条数据,分别处理不同业务。


首先,需配置主业务流程属性,包括【基本信息】、【流程变量】和【依赖资源】。其中,【流程变量】包括ID列表“ids(长整数)”、单条ID“id(长整数)”、集成对象数据表“log”和日志列表索引“index(整数)”;【依赖资源】中引入集成对象“T_ISC_DATA_COPY_EXEC_LOG”。


具体的配置界面如下图所示:


主业务流程属性配置界面


接着,配置主业务流程图,根据ids遍历取每一条数据,直到list遍历完成结束。


主业务流程图


接下来,小编为大家详细介绍每个节点的内容。


节点【分别取出每一个id】根据索引取列表的每一条数据。


取值脚本示例


节点【根据id取一条日志】根据过滤条件取每条数据。


【根据id取一条日志】配置示例


节点【索引自加】将累计index,当index等于列表长度时,遍历结束。


【索引自加】脚本示例


参考资料


更多关于集成服务云的知识,可参考下述资料:


集成服务流程操作指南




#往期推荐#


# 如何使用服务流程进行基础资料初始化

# 如何在服务流程中进行API集成

# 如何在服务流程中使用消息集成

# 如何使用服务流程对启动方案失败进行自动补偿

# 如何通过服务流程进行单据反写

# 如何使用服务流程进行数据一致性补偿同步

# 如何通过服务流程进行异常处理与状态通知

# 如何通过服务流程进行接口幂等与重试

# 如何通过服务流程调用BOTP下推触发工作流

# 如何通过服务流程调用微服务集成


更多精彩内容,“码”上了解!↓


如何通过服务流程进行分批并发处理

服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息