0
点赞
收藏
分享

微信扫一扫

攻城狮讲故事(二)-分页小事故

醉倾城1 2023-09-15 阅读 11

2023年9月15日21点45分,没错,我还在加班,本来快到6点可以下班走人了,另外一个部门的人突然群里发消息,和我联调功能。功能的作用是他们给我们用文件推送100万人员信息,我们把100万人员订单信息查出来,再推送给他们,双方规定每个文件最大2万条。

遇到的问题是:

我给对方推送了591955条数据,但是对方只收到591933条数据,差了22条。我一看我给对方推送的刚好有22个2万条数据的文件,那么问题就出现在文件分割上了,本质出现在查询分页上了。

下面是我写的代码:

for (int i=0;i<count;i++) {
		int offsit = i;
  	int limit = 20000;
  	fun(offsit,limit);
  	i+= 20000;
}

最后就出现了我上面说的问题。

后来我网上一查,发现问题了,limit 0,20000,其实查询的是第0-19999条,所以我第二次循环的时候,就变成 limit 20001,20000,丢了一条。

我的做法是把for循环上的i++去掉了,或者你也可以把偏移量改成i+=19999;

下班!!!







举报

相关推荐

0 条评论