数据库同步问题方案总结:
一、背景:在本科实习项目中,我学习后端spring boot甲方要求我们使用另一个乙方(就叫它乙方吧)的数据库数据:乙方更新、删除,我们的数据库就要更新、删除,还要求前端按钮可以手动同步更新删除的数据。
二、原本方案:需要多添加一个管理更新表名和对应时间戳的表(time_stamp),每次同步先查询对应表的时间戳,为空则同步半年前到现在,非空则同步上次同步到现在的,每次同步后都需要将同步时间写入对应表的时间戳。
time_stamp:
id | 更新的表名 | 时间戳 |
---|---|---|
1 | customer | 时间戳 |
缺点:需要添加额外数据库,每次同步都涉及额外数据库操作。
三、最后解决方案:将同步的更新删除代码块加上定时器
@Scheduled(cron = “0 0/30 * * * ?”)
设为每30分钟同步一次,前端按钮手动同步的话设为同步现在到现在之前3天的时间(考虑到部署服务器维护等时间,时间长点挺好)。这样就不需要加额外数据库了。