V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Ufo666
V2EX  ›  问与答

关于定时拉取第三方接口数据到自己项目,菜鸟的一些问题。大佬进来看看

  •  
  •   Ufo666 · 2022-10-27 14:42:15 +08:00 · 821 次点击
    这是一个创建于 767 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家人们,现在有个需求。 需求:每两小时需要同步拉取一次第三方的订单记录。 原因:因为第三方这些数据只存半年,所以要拉到我们这里,项目经理后续要做统计分析。 接口:参数[开始时间戳,结束时间戳],返回[时间范围内所以订单的关键信息]。 问题: 1.前半年的数据需要手动查询,这个没问题。 2.定时任务每次的查询条件->时间范围,如何每次都精确到整点,因为定时任务也不是百分百整点? 3.服务遇故重启,会造成本次任务数据丢失。或者重启后->任务重复执行->导致数据重复,如何避免?

    6 条回复    2022-10-27 15:28:43 +08:00
    Ufo666
        1
    Ufo666  
    OP
       2022-10-27 14:43:24 +08:00
    好家伙,我的提行怎么没了∑(っ°Д°;)っ
    wetalk
        2
    wetalk  
       2022-10-27 14:52:28 +08:00
    2 ,开始和截止时间,分别向前向后延伸一小段,规避,本地做幂等
    3 ,本质上和 2 的幂等问题一样
    hidemyself
        3
    hidemyself  
       2022-10-27 14:54:23 +08:00
    定时任务也不是一定要取当前时间,你可以维护一个列表,就保存已经拉取过的时间段
    重复那个,有唯一标识就用唯一标识,没有就对整体做一个 hash ,保证每次入库没有重复的就行了吧
    Ufo666
        4
    Ufo666  
    OP
       2022-10-27 14:57:31 +08:00
    感谢 2 楼 3 楼!懂了!
    menget
        5
    menget  
       2022-10-27 14:58:59 +08:00
    记录一个拉取成功的时间戳,这个时间戳和结束时间戳保持一致,作为下次拉取的开始时间戳。
    Ufo666
        6
    Ufo666  
    OP
       2022-10-27 15:28:43 +08:00
    @menget 哇,你这个太可以了!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:28 · PVG 10:28 · LAX 18:28 · JFK 21:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.