业务流程.常见问题.WebApi调用网控、反写覆盖问题
【场景】WebApi调用网控、反写覆盖问题
问题一:网控问题
![image.webp](/download/01005dc3ef51a1744557889c582ca9fc67d9.webp)
问题二:api反写覆盖问题
![image.webp](/download/01002ea53c9429f04596a6f3578baade8b81.webp)
【说明】
由于星空是一个非常老的系统,早期的并发控制基本保证单据界面操作的网控处理;
但是随着API的接入,系统的并发非常高,而且更通常的是业务流程并发反写同一个上游单据,导致同时获取源单数据,反写值按照并发的最后一个提交的事务进行数据写入,导致反写值变少了
[业务流程.并发反写运行逻辑](https://wenku.my7c.com/article/401403440204797952?productLineId=1)
【支持高并发的api整体方案】
(0)首先第一步先确认是否需要使用这个方案
如果没有拆单逻辑,系统单据都是1对1的,那么不需要实现此方案,星空系统能够确保没有源单没有并发时反写正常
针对同一个源单是否有那么高的并发频次,比如同一个源单下推了5个单据,但是5个单据分别1天生成1个,也不需要实现次方案
(1)反写规则启用新版网控,通过设置数据库唯一约束严格保障反写同一个源单时仅支持一个线程执行
[业务流程.启用新网控运行逻辑](https://wenku.my7c.com/article/407587269290352384?productLineId=1)
![image.webp](/download/01000c0b96453dfd4ea5a2ac1f46632b173b.webp)
(2)启用新版网控之后,调用端针对反写同一个源单的场景会出现异常,需要由调用端重试处理
重试方案
(a)[业务流.二开案例.WebApi在调用端重试](https://wenku.my7c.com/article/501832360728680704?productLineId=1)
(b)[业务流.二开案例.WebApi保存失败时暂存,执行计划定期重新保存](https://wenku.my7c.com/article/501855819302714880)
核心逻辑:保存失败后,后续再次保存,而非仅调用一次
【常见的出现此类问题的api调用场景】
(1)api json中使用 BatchCount 启用批量保存,且批量保存中的数据包存在多个数据包指向同一个源单,导致在服务端启用多线程
![image.webp](/download/0100819fb893dd68455fb87328dc7497333c.webp)
(2)api 高频直接向星空发送请求,且源单为同一个源单,常见的如 二开扫码确认
nice !
业务流程.常见问题.WebApi调用网控、反写覆盖问题
【场景】WebApi调用网控、反写覆盖问题问题一:网控问题![image.webp](/download/01005dc3ef51a1744557889c582ca9fc67d9.webp)问题二:api...
点击下载文档
本文2024-09-16 18:16:50发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-21116.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章