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

游戏推广怎么做引流seo实战密码第三版pdf

游戏推广怎么做引流,seo实战密码第三版pdf,阿里云域名注册续费,广州网站建设 领航科技在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程&#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.laogonggong.com/news/21135.html

相关文章:

  • 怎样做当地网站推广4p营销理论
  • 做seo网站标题用什么符号网站搜索引擎优化
  • 建个网站多少钱微信公众号怎么做文章推广
  • 旅游网站开发实验报告公关公司提供的服务有哪些
  • 中山做网站的公司拉新推广一手接单平台
  • 网站建设报价表萝卜建站
  • 级a做爰片免费视网站看看长沙岳麓区
  • 酷乐家居在线设计网站的推广优化
  • 榆次网站建设百度指数数据下载
  • 组态王如何做网站链接电商运营公司排名
  • 所有网上购物的网站微信营销推广
  • 自媒体平台账号注册seo外包网络公司
  • 黄骅港务集团沈阳百度seo
  • wordpress配置页面关键词seo报价
  • 济南网站建设排名苏州企业网站关键词优化
  • 贵州做网站的公司win10系统优化软件哪个好
  • 网站模板预览千锋教育介绍
  • 最大的房产网站统计网站访问量
  • 菠菜网站的代理怎么做的上海seo网站优化软件
  • 荔湾建网站公司百度搜索风云榜下载
  • b2c商城网站建设及运营方案google关键词挖掘工具
  • 长沙做网站智投未来清远新闻最新消息
  • 东莞网站设计制作教程宽带业务如何推广
  • 企业网站建设方案报价图片优化
  • 网络项目抖音搜索seo代理
  • 北航网站建设百度关键词推广方案
  • 怎样用自己的电脑,做网站seo站内优化技巧
  • 网站开发体会800字营销手机系统安装
  • 西安建设局官方网站培训学校招生营销方案
  • 建设英文网站的申请怎么写高清视频线和音频线的接口类型