做网站的好公司有哪些,网站源码下载有什么用,个人网站模板之家,网站开发运营服务合同最近要做一个定时任务处理的需求#xff0c;在分页处理上。发现了大家容易遇到的一些坑#xff0c;特此分析记录一下。 场景 现在想象一下这个场景#xff0c;你有一个定时处理任务#xff0c;需要查询数据库任务表中的所有待处理任务#xff0c;然后进行处理… 最近要做一个定时任务处理的需求在分页处理上。发现了大家容易遇到的一些坑特此分析记录一下。 场景 现在想象一下这个场景你有一个定时处理任务需要查询数据库任务表中的所有待处理任务然后进行处理。 举个例子生成用户的月度账单并且要尽可能确保每个用户都能生成自己的账单推送到用户的邮箱中。 分析 拿到这样一个任务之后我们很自然的就想到了加一个定时任务每隔一段时候处理这些任务。 任务肯定是先查询再处理。处理完成之后再更新任务状态。 关于查询 一般开始一个任务时都是要有一个范围的比如特定时间或特定用户。如果不界定范围由于产线上的数据不断更新我们的程序就会变得不可控因此我们先要界定一个范围然后再进行处理。 由于任务基数可能比较大所以查询任务的时候不能一次性全部读取到内存中因此需要进行分页处理。 关于更新 任务更新的时候考虑到并发我们一般都要进行待状态更新这样才能确定更新结果符合预期。如果更新结果不符合预期还可以适当告警。 分页1.0 根据上面的需求我们很容易就写出了如下v1.0代码使用了PageHelper进行分页。