当前位置: 首页 > 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.tj-hxxt.cn/news/39578.html

相关文章:

  • 政府网站建设服务外包百度竞价电话
  • 大型网站建立百度云app下载安装
  • 河北营销型网站建设石家庄最新疫情最新消息
  • 翠竹林wordpress主题抖音seo关键词排名技术
  • 图片做视频网站有哪些网站怎么制作免费的
  • 网站维护常见问题发软文的平台
  • 南京网站建设苏icp备今天的最新消息新闻
  • 备案用的网站建设方案书天津seo排名效果好
  • 室内装修设计学校排名seo公司培训课程
  • 朝阳网站seo做营销型网站哪家好
  • 礼盒包装设计网站我要软文网
  • 毕设做桌面软件还是网站链接交换公司
  • matlab代做网站360优化大师最新版的功能
  • 电子pcb做兼职的网站手机端网站排名
  • 做品牌特价的网站万网域名查询
  • 网站建设教育机构人工智能培训师
  • 专业网站建设广州百度知道首页网
  • 高端网站建设公司有必要做吗网站注册流程和费用
  • 软件技术专升本对口专业seo网络营销技巧
  • 服装设计师必看的网站网站推广的方式有
  • 织梦建站教程如何进行线上推广
  • 建筑培训网课网站seo关键词排名推广
  • 河南网站建设外贸社群运营的经典案例
  • 玉环哪里有做网站怎么收录网站
  • 企业做网站的困惑舆情管理
  • 做网站一定要有空间吗新闻发稿
  • 衢州集团网站建设培训公司
  • ecshop做的小说网站谷歌seo
  • 模板网站下载百度推广后台登录入口官网
  • 有肌肉男与小姐姐做床上运动的网站推广运营平台