我是靠谱客的博主 虚心时光,最近开发中收集的这篇文章主要介绍springCould通过@Async标签异步方法中调用feign自动进入熔断函数????,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在SpringCould中通常需要各个模块之间的相互调用实现数据互通和业务逻辑

但是当使用异步标签@Async与@EableAsync的配合使用的时候,在@Async标注的异步方法中调用fegin会自动进入熔断函数。

在网上查阅资料发现@Async的方法不可以调用fegin

当生产者的接口,只是调用另外一个外部接口的作用的时候(即生产者只有你一个消费者),可以将被调用方法打上异步@Async标签,将消费者异步方法标签删除,也可实现异步效果。

我的代码情况如下

调用方:

 @Override
public void deleteInfoToIm(String ids) throws Exception {
String[] idList=ids.split(",");
for(String id:idList){
Map<String,Object> paramsMap = new LinkedHashMap<String,Object>();
paramsMap.put("userId",id);
paramsMap.put("ImFlag","4");
//调用im接口
syncToImApiFeignClient.SyncUserToImApi(paramsMap);
}
}
@FeignClient(name="${feign.client.XXXXX.name}",
fallback= XXXXXFeignClientHystrix.class,
path = "${feign.client.XXXX.path}")XXXX
public interface SyncToImApiFeignClient {
@PostMapping("/XXXXXCtrl/doOrgSynUpdate")
JsonResult SyncOrgToImApi(@RequestBody Map<String, Object> map) throws Exception;
@PostMapping("/XXXXXCtrl/doUserSynUpdate")
JsonResult SyncUserToImApi(@RequestBody Map<String, Object> map) throws Exception;
}

被调用方:


@Async
@PostMapping("/doOrgSynUpdate")
public JsonResult doOrgSynUpdate(@RequestBody Map<String,Object> params){
JsonResult result = null;
try {
if(AegisCommonUtils.isNull(params.get("orgId"))
||AegisCommonUtils.isNull(params.get("ImFlag"))){
return JsonResultUtils.getFailInstance("参数错误");
}
result = XXXXXXService.doOrgSynUpdate(params);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

 

最后

以上就是虚心时光为你收集整理的springCould通过@Async标签异步方法中调用feign自动进入熔断函数????的全部内容,希望文章能够帮你解决springCould通过@Async标签异步方法中调用feign自动进入熔断函数????所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部