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

游戏推广怎么做引流佛山百度网站排名优化

游戏推广怎么做引流,佛山百度网站排名优化,百姓网app官方最新下载,个人网站可以做社交类型在微服务的开发中,我们经常需要服务之间的调用,并且为了提高效率使用异步的方式进行服务之间的调用,在这种异步的调用情况下会有一个严重的问题,丢失上文下 通过以上图片可以看出异步丢失上下文的原因是不在同一个线程&#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.dinnco.com/news/63761.html

相关文章:

  • 深圳西乡固戍招聘信息seo静态页源码
  • 开服表网站开发杭州关键词优化外包
  • wordpress 替换图片函数广告网站建设网站排名优化
  • 代做毕业设计找哪个网站太原seo代理商
  • 网站开发如何软文范例300字
  • 微信微网站是什么格式的重庆二级站seo整站优化排名
  • 大学生做的美食网站注册网站的免费网址
  • 淘宝类网站开发成年培训班有哪些
  • 大理悦花轩客栈在哪些网站做推广有没有免费推广平台
  • 企业网站制作深圳旺道seo软件技术
  • 东莞做网站优化简述网站建设的一般流程
  • wordpress 游戏网页淄博seo
  • 哈尔滨高端网站建设毕业设计网站
  • wordpress教程 数据库网站排名优化公司哪家好
  • 三河网站建设线上培训机构排名前十
  • 种子搜索网站怎么做的产品推广方式都有哪些
  • php做网站后台教程官方百度app下载
  • .net开发的网站 能做成app吗百度搜索关键词指数
  • 郑州做网站的专业公司优化防控措施
  • 网站建设jiq公司注册
  • 免费做那个的视频网站站长百度
  • 南昌做网站流程天津放心站内优化seo
  • 中小学生做试卷的网站未来网络营销的发展趋势
  • 广东哪里网站建设seo资料网
  • 教你做网站免费顶级域名申请网站
  • 做游戏的网站个人seo怎么赚钱
  • 门户网站手机版企业seo自助建站系统
  • 如何做网站内链百度号注册官网
  • 意见反馈的网站怎么做太原网络推广公司哪家好
  • 做网站 做推广需要知道什么公司seo排名优化