淘宝订单导出解决方案

问题引出

由于淘宝平台限制,一次性最多只能导出不超过10000条订单的信息。如何正确判断并选择导出订单的起始时间和结束时间(精确至秒单位),保证该时间段内订单数量≤10000条是淘宝订单导出解决方案的核心难点。

解决思路

已知信息

  • 订单排序按照时间倒序排列
  • 平台大促的时期每秒订单量会急剧增多
  • 由于平台自身设计漏洞导致订单数据部分缺失。

订单导出流程

思路重点:

1.由于订单是按照时间倒序排序,即第一页的订单来自于当天最晚的时刻,且已知一页订单数为固定数量15个,因此选择每次循环导出600页(即600*15=9000条)订单数据。选择空出1000条数据空间是为了防止大促的时候平台每秒钟订单量激增使前600页数据加起来超过10000条,进而导致导出数据失败,流程无法成功运行。

2.获取最大页数后判断是否大于650页。

  • 若总页数<650,则将所有订单数据全部导出
  • 若总页数>650,则跳转至第600页,获取第600页最后一个订单的下单时间作为查询时间的起始时间,结束时间设为当天的23:59:59。(第一个循环的时间段)

这样就能找到区间范围(9000,10000)的订单数量所对应时间段范围了。每600页取一次查询起始时间,再将上一次循环的起始时间作为下一次循环的结束时间。每次循环前判断剩余页数是否小于650,若小于则导出最后一次数据后退出循环。

数据查漏和去重

由于平台自身漏洞会导致导出订单的时候部分数据缺失的情况,为了保证数据的完整性和准确性可以每天运行>2次导出订单的应用(次数越多越接近真实订单数据,但不建议运行太多次),再将每次导出的数据进行去重,保留最后完整的数据即可。

问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""