feat(REQ-4196) - 调整 Starter 中,当配置启用 meta-feign 时,异常走 MQ 的问题
This commit is contained in:
parent
d66f6bbb6c
commit
8050652e3e
@ -83,6 +83,10 @@ public class ComplexInvokeClient implements Client {
|
||||
@Override
|
||||
public Response execute(Request request, Request.Options options) throws IOException {
|
||||
log.debug("ComplexInvokeClient execute... Url: {}", request.url());
|
||||
if (useMetaFeign(request)) {
|
||||
log.debug("use meta feign client: {}", request.url());
|
||||
return feignClient.execute(request, options);
|
||||
}
|
||||
RpcInvokeModeEnum currentInvokeModeEnum = getInvokeMode(request);
|
||||
log.debug("[{}] invoke url: {}", currentInvokeModeEnum, request.url());
|
||||
if (Objects.equals(SYNC, currentInvokeModeEnum)) {
|
||||
@ -91,6 +95,10 @@ public class ComplexInvokeClient implements Client {
|
||||
return asyncInvoke(request, options);
|
||||
}
|
||||
|
||||
private boolean useMetaFeign(Request request) {
|
||||
return starterProperties.getMetaFeign() && request.requestTemplate().feignTarget().type().getName().contains("cn.axzo.workflow.client.feign");
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送 RPC 调用动作的 MQ 事件
|
||||
*
|
||||
@ -117,12 +125,12 @@ public class ComplexInvokeClient implements Client {
|
||||
Map<String, Collection<String>> headers = request.headers();
|
||||
headers.forEach((k, v) -> log.debug("ComplexInvokeClient Header: {} = {}", k, v));
|
||||
return Response.builder()
|
||||
.status(HttpStatus.OK.value())
|
||||
.reason(HttpStatus.OK.getReasonPhrase())
|
||||
.headers(headers)
|
||||
.request(request)
|
||||
.body(body)
|
||||
.build();
|
||||
.status(HttpStatus.OK.value())
|
||||
.reason(HttpStatus.OK.getReasonPhrase())
|
||||
.headers(headers)
|
||||
.request(request)
|
||||
.body(body)
|
||||
.build();
|
||||
} catch (BeansException e) {
|
||||
return feignClient.execute(request, options);
|
||||
}
|
||||
@ -218,7 +226,7 @@ public class ComplexInvokeClient implements Client {
|
||||
|
||||
private RpcInvokeModeEnum getInvokeMode(Request request) {
|
||||
Collection<String> invokeModel = request.headers().getOrDefault(STARTER_INVOKE_MODE,
|
||||
Collections.singletonList(starterProperties.getInvokeMode().name()));
|
||||
Collections.singletonList(starterProperties.getInvokeMode().name()));
|
||||
if (CollectionUtils.isEmpty(invokeModel)) {
|
||||
return starterProperties.getInvokeMode();
|
||||
} else if (invokeModel.size() > 1) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user