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

2022-10-27 14:42:15 +08:00
 Ufo666

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

806 次点击
所在节点    问与答
6 条回复
Ufo666
2022-10-27 14:43:24 +08:00
好家伙,我的提行怎么没了∑(っ°Д°;)っ
wetalk
2022-10-27 14:52:28 +08:00
2 ,开始和截止时间,分别向前向后延伸一小段,规避,本地做幂等
3 ,本质上和 2 的幂等问题一样
hidemyself
2022-10-27 14:54:23 +08:00
定时任务也不是一定要取当前时间,你可以维护一个列表,就保存已经拉取过的时间段
重复那个,有唯一标识就用唯一标识,没有就对整体做一个 hash ,保证每次入库没有重复的就行了吧
Ufo666
2022-10-27 14:57:31 +08:00
感谢 2 楼 3 楼!懂了!
menget
2022-10-27 14:58:59 +08:00
记录一个拉取成功的时间戳,这个时间戳和结束时间戳保持一致,作为下次拉取的开始时间戳。
Ufo666
2022-10-27 15:28:43 +08:00
@menget 哇,你这个太可以了!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/890386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX