返回列表 发布新帖

高代码开发:全异步服务A中业务逻辑调用其他全异步服务B(稳态),服务A回调没有执行

25 3
发表于 2025-6-19 11:45:32 | 查看全部 阅读模式
问答

紧急程度

已完结
本帖最后由 李维 于 2025-6-19 11:45 编辑

华为云测试区
租户:icd
问题描述:
全异步服务A中业务逻辑调用其他全异步服务B(稳态)。
1.稳态全异步服务B能正常回调返回数据
2.服务A请求回复正常,但是回调服务没有执行。
请协助排查,谢谢。

服务接口定义:

  1.     /**
  2.      *  稳态API异步请求
  3.      *
  4.      * @param headers 请求头信息
  5.      * @param messageBody 业务信息
  6.      * @return java.util.Map<java.lang.String, java.lang.Object>
  7.      * @author liwei1
  8.      * @date 2024/11/15 17:33
  9.      */
  10.     @EAIService(id="spa.icd.async.stable.api.process")
  11. //    @Api(name = {"icd.erp.out.wo.release"})
  12.     public DWEAIResult processAsyncStableApi(Map<String, Object> headers, Map<String, Object> messageBody) throws Exception;


  13.     /**
  14.      * 稳态API异步请求,稳态API请求的callback
  15.      *
  16.      * @param headers
  17.      * @param messageBody
  18.      * @Author: xieJinLong
  19.      * @DateTime: 2021-9-26 16:29
  20.      * @Return com.digiwin.app.service.DWEAIResult
  21.      */
  22.     @EAICallback(id = "spa.icd.async.stable.api.process.callBack")
  23.     DWEAIResult processAsyncStableApieCallBack(Map<String, Object> headers, String messageBody) throws Exception;
复制代码
服务实现:
  1.     /**
  2.      * 稳态API请求
  3.      * spa.icd.async.stable.api.process
  4.      *
  5.      * @param headers     请求头信息
  6.      * @param messageBody 业务信息
  7.      * @return java.util.Map<java.lang.String, java.lang.Object>
  8.      * @author liwei1
  9.      * @date 2024/11/15 17:33
  10.      */
  11.     @Override
  12.     public DWEAIResult processAsyncStableApi(Map<String, Object> headers, Map<String, Object> messageBody) throws Exception {
  13.         Map bodyParameter = AppCommonUtils.getBodyParameter(messageBody);
  14.         //接口名称
  15.         String serviceName = bodyParameter.containsKey("service_name") ? bodyParameter.get("service_name").toString() : Strings.EMPTY;
  16.         //业务信息
  17.         Map<String, Object> requestInfo = (Map<String, Object>) bodyParameter.get("business_info");


  18.         //调用异步稳态api
  19.         DWEAIFasyncChainResult dweaiFasyncChainResult = new DWEAIFasyncChainResult("0", "", "", new HashMap<>(),
  20.                 () -> {
  21.                     try {
  22.                         //调用稳态接口
  23.                         AppCommonUtils.invokeFasyncStableApi(headers, serviceName, requestInfo, "spa.icd.async.stable.api.process.callBack", true);
  24.                     } catch (Exception e) {
  25.                         throw new RuntimeException(e);
  26.                     }
  27.                 },
  28.                 (callbackHeaders, callbackMessageBody) -> {
  29.                 });
  30.         dweaiFasyncChainResult.setChainParameter("is_exception", true);
  31.         return dweaiFasyncChainResult;
  32.     }

  33.     /**
  34.      * 异步请求稳态API回调处理
  35.      * spa.icd.async.stable.api.process.callBack
  36.      *
  37.      * @param headers     响应头信息
  38.      * @param messageBody 业务信息
  39.      * @return java.util.Map<java.lang.String, java.lang.Object>
  40.      * @author liwei1
  41.      * @date 2024/11/15 17:33
  42.      */
  43.     @Override
  44.     public DWEAIResult processAsyncStableApieCallBack(Map<String, Object> headers, String messageBody) throws Exception {
  45.         StdData stdData = AppCommonUtils.toStdData(messageBody);
  46.         DigiSrvcode digiSrvcode = "0".equals(stdData.getCode()) ? DigiSrvcode.success : DigiSrvcode.failure;
  47.         //region
  48.         Map<String, Object> response = stdData.getParameter();

  49.         //是否存在稳态请求异常
  50.         Boolean isException = false;
  51.         //异常处理信息
  52.         String description = Strings.EMPTY;
  53.         if ("0".equals(stdData.getCode())) {
  54.             response = stdData.getParameter();
  55.         } else {
  56.             isException = true;
  57.             description = stdData.getDescription();
  58.         }
  59.         Map<String, Object> parameter = new HashMap<>();
  60.         parameter.put("is_exception", isException);
  61.         //异常信息
  62.         parameter.put("description", description);
  63.         //业务信息
  64.         parameter.put("business_info", response);

  65.         //endregion

  66.         // DWEAIChainTotalResult为服务给去中心化 ESP的回应
  67.         DWEAIChainTotalResult chainTotalResult = new DWEAIChainTotalResult(stdData.getCode(), "111", "callback chainTotalResult", parameter);

  68.         chainTotalResult.setDigiSrvcode(digiSrvcode);
  69.         // 返回DWEAIFasyncChainEndResult结束调用链并继续调用链并返回给全异步服务spa.icd.async.stable.api.process「接收回应」
  70.         DWEAIFasyncChainEndResult dweaiFasyncChainEndResult = new DWEAIFasyncChainEndResult("0", "", "callback", new HashMap<>(), (callbackHeaders, callbackMessageBody) -> {
  71.             // 处理中心化 / EAI / ESP返回的「接收回应」信息
  72.             System.out.println(callbackMessageBody.toString());
  73.         }, chainTotalResult);
  74.         dweaiFasyncChainEndResult.setDigiSrvcode(DigiSrvcode.success);
  75.         return dweaiFasyncChainEndResult;
  76.     }
复制代码



最佳答案

查看完整内容

問題定位在地中台沒正常返回給云中台,需請地中台人員確認 單子轉禪道單168002追踨

评论3

姜文盛Lv.7 发表于 2025-6-19 15:16:11 | 查看全部
收到问题,内部确认中
姜文盛Lv.7 发表于 2025-6-19 19:20:43 | 查看全部
1. 确认平台云呼叫地端异步服务是支持的
2. 现况没callback问题,需要确认地端服务是否有正常返回。 (需要加log确认下),
等待確認後往下排查。
姜文盛Lv.7 发表于 4 天前 | 查看全部
image.png
問題定位在地中台沒正常返回給云中台,需請地中台人員確認
單子轉禪道單168002追踨
大家来答
    热门讨论
    精选文章
    数据驱动2.0工作流流程变量说明
    在工作流执行的过程中,我们常常需要先取得一些待处理的数据,并在处理后将结果存放起
    互联中台整合请求安全码(digi-key)说明
    互联中台整合请求中有安全码的设计,用来验证整合请求的合法性。安全码的位置说明如下
    数据比对介绍
     一、数据比对介绍(一)业务场景在项目实施中,预算执行率的准确计算依赖于敏态
    Athena 五大驱动力介绍
                  在数字化转型的浪
    开发不踩雷-数据驱动2.0, 模型栏位异动调整时的注意事项
    场景说明我们在应用开发过程中, 模型的异动是非常常见的一般情况的开发顺序为 模型设
    • 关注公众号
    Copyright © 2025 鼎捷数智股份有限公司 版权所有 All Rights Reserved. Powered by Discuz! X5.0
    关灯 在本版发帖
    即将开放
    返回顶部
    快速回复 返回顶部 返回列表