报价采集重构
- 说明
- 报价采集模块,从汽车之家手机app接口采集汽车报价数据,分析后导入系统
- 目标
- 优化采集流程,降低采集过程中的资源使用,提高采集效率
- 思路
- 采集汽车之家app接口
- 减少请求数量
- 采集以每个车型为单位进行采集
- 接口有分页限制
- 单页最大条数为100
- 每个车型的数据都要备份,采集时如有变化才需要进行进一步分析
- 有变化则更新相应数据,并保留原始数据
- 原始数据可以方便以后进行数据排查
- 采集失败则需要记录日志,供快速发现问题
- 采集不再保存镜像表,在内存分析完毕后直接审核
- 确认采集完整后,直接删除原车型报价数据,用新数据替换
- 发布数据时需要线上将该表读写用缓存隔离
- 采集汽车之家app接口
- 场景描述
- 设计
- 数据存储
- 尽量存储原始数据
- 有需要的再进行数据映射
- 无法准确提取的数据,严格来说不应该支持提取
- 数据提取前要对数据有预期,超出预期后则需要记录日志
- 任务日志
- 数据提取异常
- 更新数据量与前几次差距超出50%
- 数据完全无法提取
- 需要记录日志
- 本次采集数据不可以导入
- 解决前不安排下次采集任务
- 过程
- 采集和收集所有数据,并进行初步聚合
- 分析数据,生成各种日志,分析结果存储文件
- 数据无异常则可以直接发布
- 有异常需要人工介入
- 本次采集无效
- 编辑管理数据时,只能选择发布或,取消发布、删除。不再提供发布后编辑后草稿功能
- 数据无异常直接发布
- 发布过程
- 线上数据接口全部启用缓存层,当发布时数据层不再提供新数据,直到发布完整
- 必须保证线上接口功能完整
- 不可以出现没有数据的情况
- 数据存储
- 采集步骤
- 分发采集任务
- 收集采集结果
- 分析结果,采集失败需要进行重新安排采集
- 分析采集结果,并进行自动审核
- 审核步骤是否还有必要存在
- 分析结果需要对比之前的版本数据,防止不必要的数据更新
- 自动发布
- 自动发布时会对db有较大压力
- 需要参与的人员
- 自动采集
- 采集到初始数据
- 编辑人员
- 需要审核和校验数据
- 开发人员
- 核对数据保证数据完整
- 当数据出现问题有足够的信息可以还原原始数据,并查找原因
- 自动采集