从第三方系统定时同步数据的简单设计
2018-05-10 本文已影响17人
当我写下一亿行代码
小Z今天在项目上遇到一个遗留问题,客户的系统需要定时从银行接口获取入账信息,发生了入账数据的丢失。原因是自研系统通过定时任务的方式,每次执行任务只是获取前一天到当前时间的数据,而上个月有段时间银行前置机通信出现异常,所以出现了数据同步不到位的情况。
目前给出的解决方案是:
1.系统中增加一张表,记录每次任务执行成功的业务时间,并非每次任务执行时间,因为存在一段时间内银行端并未发生入账,并且也不能保证现在执行的时间一定早于银行端入账时间,所以用业务时间去构造一条可信的时间戳,该时间戳满足从前往后的规则。
2.每次任务启动后,取出该时间戳,以此为参数,加入2天的冗余量,即往前推2天,去银行调用接口取回数据,然后按照业务规则将数据同步入库。
3.该解决方案不能满足的一种情况是,如银行5月3日入账记录一直为10条,到了现在5月8号后突然新增了一条5月3日的记录。该情况首先认为是外部系统出现异常,要将该情况的数据同步,只能开发一个定时任务,每晚全量同步数据,小Z觉得现阶段没必要,同时认为银行系统在这方面是可靠的。
目前将会按照该解决方案执行。