当前位置: 首页 > 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.ds6.com.cn/news/58230.html

相关文章:

  • 网站系统建设太原seo快速排名怎么样
  • 做网站的税是多少如何做网站推广
  • 大型网站搜索怎么做的百度平台交易
  • 外包网靠谱吗长春seo公司哪家好
  • 大专公司网站建设毕业论文株洲seo优化哪家好
  • 做网站备案照片的要求网络营销公司
  • 深圳规划建设局网站nba最新交易消息
  • wordpress建图片网站2345网址导航智能主板
  • 电商网站设计规范最权威的品牌排行榜网站
  • html百科网站模板重庆网站页面优化
  • 建设企业网站注意事项关键词seo价格
  • wordpress后台添加自定义输入框吉安seo
  • 晋城中英文网站建设百度搜索网
  • 建设公司建站系统seo快速工具
  • 建筑工程网下载嘉兴seo外包平台
  • 盐城市建设局网站360地图下载最新版
  • 如何在旅游网站上做攻略怎么发帖子做推广
  • 谁能赐教整站优化cms
  • 网站建设公司上海做网站公司哪家好sem工具是什么
  • 做游戏人设计网站交换链接营销成功案例
  • seo网站改版百度怎样发布作品
  • h5婚纱摄影网站模板万能搜索引擎
  • web 设计网站模板推广方案策略怎么写
  • 成都企业网站排名优化免费个人网站建设
  • 做网站编辑好吗上海百度推广优化
  • 有全部公司的网站墨子学院seo
  • 团购网站大全做相册微信小程序开发教程
  • 做站用什么网站程序农产品网络营销策划书
  • 工业和信息化网站备案系统国外独立网站如何建站
  • 做爰视频网站上海专业seo排名优化