2021与蓝度共同重构项目,服务端
liuhaonan
2022-08-25 41feaf34a801b9fafee93317f96337b01f763be7
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/BaseInvokeSyncService.java
@@ -171,40 +171,25 @@
        request.setIdentifier("rrpc");
        request.setArgs(JSON.toJSONString(param));
        // 获得服务调用响应
        return getAcsResponse(request, 1);
    }
    /**
     * 获得服务调用响应
     *
     * @param request
     * @return
     */
    private InvokeThingServiceResponse.Data getAcsResponse(InvokeThingServiceRequest request, int time) {
        if (time <= 3) {
            InvokeThingServiceResponse response = null;
            try {
                response = getClient().getAcsResponse(request);
                if (response == null) {
                    log.error("调用rrpc失败,响应为空!");
                    Thread.sleep(100);
                    return getAcsResponse(request, time + 1);
                }
                if (!response.getSuccess()) {
                    log.error("调用rrpc失败," + response.getErrorMessage());
                    Thread.sleep(100);
                    return getAcsResponse(request, time + 1);
                } else {
                    // 服务调用成功,仅代表发送服务指令的成功,不代表执行服务本身是否成功
                    return response.getData();
                }
            } catch (Exception e) {
                throw new BusinessException(e.getMessage());
            }
        } else {
        } catch (ClientException e) {
            e.printStackTrace();
            throw new BusinessException("硬件请求失败,请检查硬件设备!");
        }
        if (response == null) {
            throw new BusinessException("调用rrpc失败,响应为空!");
        }
        if (!response.getSuccess()) {
            throw new BusinessException("调用rrpc失败," + response.getErrorMessage());
        }
        // 服务调用成功,仅代表发送服务指令的成功,不代表执行服务本身是否成功
        if (response.getSuccess()) {
            // 仅同步服务有result
            return response.getData();
        }
        return null;
    }
}