家人们,现在有个需求。 需求:每两小时需要同步拉取一次第三方的订单记录。 原因:因为第三方这些数据只存半年,所以要拉到我们这里,项目经理后续要做统计分析。 接口:参数[开始时间戳,结束时间戳],返回[时间范围内所以订单的关键信息]。 问题: 1.前半年的数据需要手动查询,这个没问题。 2.定时任务每次的查询条件->时间范围,如何每次都精确到整点,因为定时任务也不是百分百整点? 3.服务遇故重启,会造成本次任务数据丢失。或者重启后->任务重复执行->导致数据重复,如何避免?
1
Ufo666 OP 好家伙,我的提行怎么没了∑(っ°Д°;)っ
|
2
wetalk 2022-10-27 14:52:28 +08:00
2 ,开始和截止时间,分别向前向后延伸一小段,规避,本地做幂等
3 ,本质上和 2 的幂等问题一样 |
3
hidemyself 2022-10-27 14:54:23 +08:00
定时任务也不是一定要取当前时间,你可以维护一个列表,就保存已经拉取过的时间段
重复那个,有唯一标识就用唯一标识,没有就对整体做一个 hash ,保证每次入库没有重复的就行了吧 |
4
Ufo666 OP 感谢 2 楼 3 楼!懂了!
|
5
menget 2022-10-27 14:58:59 +08:00
记录一个拉取成功的时间戳,这个时间戳和结束时间戳保持一致,作为下次拉取的开始时间戳。
|