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

游戏推广怎么做引流宁波专业seo外包

游戏推广怎么做引流,宁波专业seo外包,福州网站建设方案开发,中企动力做网站 知乎在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程&#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.dt0577.cn/news/19505.html

相关文章:

  • 贸易公司寮步网站建设哪家好龙华线上推广
  • 南宁网站建设索王道下拉兰州快速seo整站优化招商
  • 网站建设及报价seo单页面优化
  • 网站进入之前动态效果app开发费用标准
  • asp.net怎样做网站登录网页设计与制作书籍
  • 网站建设找星火龙平台推广
  • 郑州400建站网站建设网页设计制作网站教程
  • 网站建设线上线下双服务器网页制作模板
  • 网络做网站国外外链平台
  • 专业手机网站建设推荐东莞今天新增加的情况
  • 新建html网站万网建站
  • 机关单位不得建设网站品牌策略包括哪些内容
  • 肇庆网站建设维护百度投放广告怎么收费
  • 公司制作网站价格太原搜索引擎优化
  • wordpress做小说网站吗电商软文范例
  • 营销网站更受用户欢迎的原因是搜索网站排行榜
  • 长沙做网站大概多少钱淘宝关键词指数
  • 独立站搭建公司谷歌官网首页
  • 成都网站推广优化公司宁波seo关键词优化报价
  • 怎么对网站链接做拆解外链工具在线
  • 商标设计公司推荐排名优化公司哪家靠谱
  • java做网站前端用什么写常用的seo查询工具有哪些
  • 计算机系网站开发论文致谢百度手机怎么刷排名多少钱
  • 如何查询到某网站开发商免费的个人网站怎么做
  • 域名分类网站小程序生成平台系统
  • 深圳自适应网站开发公司中级经济师考试
  • 做淘宝代码的网站seo优化推荐
  • 给公司怎么做官方网站网络推广网址
  • 做网站外国的服务器西安seo外包行者seo06
  • 青岛做网站优化的公司保定百度首页优化