美文网首页
日常总结:分页处理大批量数据

日常总结:分页处理大批量数据

作者: 灿烂的GL | 来源:发表于2024-03-25 15:41 被阅读0次

    情景:处理历史流量数据,由于数据量比较大,可以按照时间或者分页进行分批处理
    设计逻辑:定时任务处理前一天数据,分页查询分批处理数据

            Boolean haveData = true;
            Integer pageNum = 1;
            String endDayStr = DateUtil.format(start, Constants.DAY_FORMAT);
            String startDayStr = DateUtil.format(DateUtil.offsetDay(start, dayOffset), Constants.DAY_FORMAT);
            while (haveData){
                Page<dto> detailInfo = null;
                detailInfo  = service.getInfoByPage(pageNum,
                                Constants.pageSize,startDayStr, endDayStr);
                   
                assert detailInfo != null;
                List<dto> dtoList = detailInfo .getRecords();
                if(CollUtil.isNotEmpty(dtoList )){
                    //具体处理逻辑
                    pageNum++;
                }else {
                    haveData = false;
                }
            }
        }
    
      //这里直接用mybatis plus的分页查询进行处理的,可以自己写个mapper或者直接用LambdaQueryWrapper做条件查询都可以
        @Override
        public Page<dto> getInfoByPage(Integer pageNum, Integer pageSize, String startDayStr, String endDayStr) {
            Page<dto> page = new Page<>(pageNum, pageSize);
            baseMapper.getInfoByPage(page,startDayStr,endDayStr);
            return page;
        }
    

    pom依赖

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.5.5</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
                <version>4.3.0</version>
            </dependency>
    

    相关文章

      网友评论

          本文标题:日常总结:分页处理大批量数据

          本文链接:https://www.haomeiwen.com/subject/lzodtjtx.html