当前位置: 首页 > news >正文

商业网站最佳域名打开网站需要用户名密码

商业网站最佳域名,打开网站需要用户名密码,软件库破解版软件合集,成都网站制作成都网站制作在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程&#xff0c…

在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下

通过以上图片可以看出异步丢失上下文的原因是不在同一个线程,所有数据不能共享,Wie了解决这个问题,我们就需要把之前线程的请求头上下文,在次存放到其他线程的请求头上下文就行,具体实现如下:

 

案例:feign异步获取订单明细的案例代码

/*** 获取订单明细的vo* @return*/@Overridepublic OrderConfirmVo orderConfirm() {MemberResponseVo member = OrderInterceptor.threadLocal.get();OrderConfirmVo orderConfirmVo = new OrderConfirmVo();System.out.println("主线程:"+ Thread.currentThread().getId());//获取主线程的请求头信息RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();//考虑到效率问题  使用异步编排CompletableFuture<Void> getAddress = CompletableFuture.runAsync(() -> {//子线程中设置添加主线程的请求头信息  信息共享  否则远程调用异步处理丢失请求头信息RequestContextHolder.setRequestAttributes(requestAttributes);System.out.println("address:"+ Thread.currentThread().getId());//远程获取地址信息List<MemberAddressVo> address = memberFeignService.getAddress(member.getId());orderConfirmVo.setAddress(address);}, executor);CompletableFuture<Void> getItem = CompletableFuture.runAsync(() -> {//子线程中设置添加主线程的请求头信息  信息共享  否则远程调用异步处理丢失请求头信息RequestContextHolder.setRequestAttributes(requestAttributes);System.out.println("item:"+ Thread.currentThread().getId());//远程获取购物项List<OrderItemVo> currentUserCartItems = cartFeignService.getCurrentUserCartItems();orderConfirmVo.setItems(currentUserCartItems);}, executor).thenRunAsync(()->{List<OrderItemVo> items = orderConfirmVo.getItems();//获取所有商品的idList<String> collect = items.stream().map(item -> item.getSkuId()).collect(Collectors.toList());List<Long> skuIds = collect.stream().map(item -> {return Long.parseLong(item);}).collect(Collectors.toList());R<List<SkuHasStockVo>> skusHasStock = wmsFeignService.getSkusHasStock(skuIds);List<SkuHasStockVo> data = skusHasStock.getData(new TypeReference<List<SkuHasStockVo>>() {});if(data!= null){Map<Long, Boolean> collect1 = data.stream().collect(Collectors.toMap(SkuHasStockVo::getSkuId, SkuHasStockVo::getHasStock));orderConfirmVo.setStocks(collect1);}},executor);//异步编排完成之后执行后续操作try {CompletableFuture.allOf(getAddress,getItem).get();} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}orderConfirmVo.setIntegration(member.getIntegration());orderConfirmVo.setPayPrice(orderConfirmVo.getPayPrice());orderConfirmVo.setTotal(orderConfirmVo.getTotal());//TODO 放重处理  生成token令牌储存在redisString token = UUID.randomUUID().toString().replace("-", "");orderConfirmVo.setOrderToken(token);redisTemplate.opsForValue().set(OrderConstant.ORDER_TOKEN+member.getId(),token);return orderConfirmVo;}

 

http://www.yayakq.cn/news/173268/

相关文章:

  • 中国建设银行官网站账户商品百度快照收录入口
  • 电子购物网站建设运城网站建设维护
  • 文案策划的网站网页设计导航栏素材
  • wap自助建站微站小程序
  • php 小企业网站 cms网站模板安全管理系统
  • 网站源码传到哪个文件夹厦门企业网站设计公司
  • 工装效果图网站织梦安装教程
  • 什么软件做网站好申请建设活动中心网站
  • aspcms网站使用教程百度云网站建设视频教程
  • 国外创意设计网站成都设计公司排行榜
  • 山东省建设教育集团网站首页智能网站推广优化
  • 有什么做论文的网站网站内容丰富
  • 科技公司建设网站吐槽做网站
  • 做个网站出来要多少钱购物软件app排行榜前十名
  • 网站建设公司+长春wordpress 无法ftp
  • 沈阳快速网站建设网站开发电商sem是什么意思
  • 比较好的设计网站推荐怎么做彩票网站收款人
  • 手机建站cms网站开发 视频存储
  • 旅游网站规划设计建设网站门户
  • 怎么做全网小说网站凡客优品家居官网
  • 网站建设j介绍ppt小红书营销推广方式
  • 驰业网站建设自媒体培训
  • 关于推进网站集约化建设的讲话网站等级保护如何做
  • 全国建设建管中心网站杭州企业网站建设
  • 北京最大做网站的公司wordpress建站知乎
  • 昆山企业网站建设公司群晖nas建设网站
  • 设计师怎么弄个人网站网站在哪里备案信息
  • 如何给企业做网站安庆网站建设aqwzjs
  • 呼和浩特做网站哪家公司好物业管理系统的设计与实现
  • 徐州网站建设案例创建网站的流程