1. 批量发送请求

在分页时,如果我们的有部分信息需要从其他的地方获取,比如我们存数据时只是存了用户ID,这个时候,我们需要访问后端去循环获取用户信息,这个时候最好是,将这些请求合并成一个请求。

举例如下:

private void handStarter(List<BpmTask> records){
        List<String> instIds=new ArrayList<>();
        for(BpmTask bpmTask:records){
            instIds.add(bpmTask.getInstId());
        }
        List<BpmInst> bpmInsts=  bpmInstService.getByIds(instIds);
        Map<String,BpmInst> instMap=new HashMap<>();
        for(BpmInst inst:bpmInsts){
            instMap.put(inst.getInstId(),inst);
        }
        for(BpmTask task:records){
            BpmInst bpmInst=instMap.get(task.getInstId());
            if(bpmInst==null){
                continue;
            }
            String starter=bpmInst.getCreatorName() + "(" + bpmInst.getCreatorDeptName() +")";
            task.setStarter(starter);
        }
    }

这里我们查询的是用户任务列表,数据实际是存在在流程实例表,这里我们就可以将流程实例ID,合并以下,调用一次请求,在程序端做些处理。虽然麻烦一些,但是减少了请求次数,尤其是在 Feign 调用 的情况下。

文档更新时间: 2022-03-12 14:35   作者:zyg