暂无
任务描述
需求描述
背景
针对平台上网率需求,优化订单下载效率,本需求针对京东国际平台进行优化
需求
订单下载延迟分析报告以及优化方案【延迟超过60分钟】【亚马逊,速卖通,京东国际】
1. 订单补漏,导致订单下载服务延迟
背景: 订单下载服务每隔4个小时或者6个小时,就会补漏一次3天内的订单。
订单接口确实是会漏单,做过实验,有时候根据时间范围获取不到订单,但是通过订单号调用详情接口,可以获取到订单。但是过了一段时间,就可以通过时间范围方式获取到订单了。
问题分析:
问题一:一个账号获取3天内的订单ID,如果账号的订单量大的话,就需要通过分页获取方式多次调用接口,这里就消耗了比较多的时间。
问题二:获取到3天内的订单号,需要循环使用每个订单号调用接口获取订单详情。其实ERP系统已支付的订单不需要重新获取订单详情,这里消耗了比较多的时间。
优化方案:
优化一:将订单补漏逻辑单独开发一个补漏服务,将需要补漏的订单号保存至队列表,避免补漏逻辑影响正常订单下载服务延迟。
优化二:通过补漏服务获取到的订单号,判断如果ERP系统是已支付状态,该订单号不用保存到队列表(可以过滤掉大部分订单号)。
优化三:正常订单下载服务,检测队列表,如果有未下载的订单号,则通过订单号下载订单。
2. 订单子系统的平台订单数据同步至ERP延迟
背景:
ERP需要通过订单子系统的拉取接口,将订单子系统的平台订单数据拉取到ERP
问题分析:
拉取接口里的查询平台订单数据的SQL慢或者超时。 优化方案: 对平台订单表数据进行归档,保留一年的数据,并且优化慢SQL
验收标准
暂无
开发报告
1.新建一个补漏服务,根据补漏逻辑把,补漏时间段内下载的的订单新增到一个中间队列表中
2.在订单正常下载逻辑中,调用接口下载订单的同时也需要查询下中间队列表,根据商务号和渠道,查询未处理和处理失败的订单,然后根据正常的订单下载业务逻辑,如果订单已经下载了,但是订单在补漏队列表中,则需要把补漏队列表中的订单状态设置为处理成功