# 《拼团交易平台系统》第2-3节:多线程异步数据加载

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/UoiFa (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

在互联网公司中的业务功能开发,会非常重视接口的响应效率,一般整体的接口响应要控制在350毫秒,那么在每个细分领域的接口可能会被压缩到50~100毫秒。

这样的响应时间对于一些简单的接口到不会有什么影响,但如果是复杂较多的业务流程串联的接口,那么控制接口的响应时长就是一个非常大的挑战了。对于这样的情况,往往会引入异步线程加载数据的方式进行处理,之后在做统一的逻辑处理,这样就可以很好的降低接口响应时间。

# 一、本章诉求

扩展规则树模型结构,增加异步数据加载区。将用于试算营销优惠的接口使用异步线程进行加载,之后写入上下文,用于后续的逻辑处理。

这部分的模型设计是非常巧妙的,通过解耦逻辑和划分功能区,让代码具有了文档属性,看到对应的类和类下的方法区,就可以轻松的理解代码实现方式。这样的处理非常有利于后续功能的迭代。

# 二、模型链路

如图,为整个模型链路的执行过程图;

  • 首先,对通用设计模式树结构扩展出异步数据加载区,这样可以把接口实现中所需的数据前置到异步数据加载区完成加载操作。以此提高接口的响应效率。
  • 之后,本节串联功能节点,并在 MarketNode 节点,添加数据加载操作。
  • 另外,注意本节需要新增加一个表 sku,也就是商品信息表,通过商品信息表获得当前商品的价格配置,以此来做商品的折扣计算。这块在实际生产中有两种实现方式,一种是每次都调用外部接口获取商品,另外一种是有商品统一同步库可以查询。我们这里先通过一个统一的商品库进行处理。那么后续谁要对接这个系统,就调用sku商品库,同步好商品即可。【库表已更新到工程下】