有些时候我们需要定时的上传一些数据库的数据,在数据不完整的情况下可能上传失败,上传失败后我们需要定时在重新上传失败的数据,该怎么合理的制定解决方案呢?下面一起看一下:
当然本篇文章只是提供一个思路,如果有更好的方案欢迎留言一起探讨。
首先我们在数据库要有字段标识,默认为0。
我们在程序中使用定时器让它定时上传这些数据,如果成功则修改为1.
如果上传出现异常或失败那么把失败的数据标识为State+1,每次失败都增加1.
这里每当失败就会增加1,我们也可以在查询数据时选择失败多少次以后就不再上传。
我们在程序中查询时就可以这样写sql
sql
select top 1 * from 表 where State!=1 and State<6 order by State asc
--这句sql的意思就是:因为State默认为0,上传成功会为1,失败会增加。我们只取未上传的和上传失败次数小于6次的,然后按照State升序排列,每次只取一条。这样就实现了循环上传,失败的检测再次上传。