求大佬帮分析下,rabbitTemplate.convertSendAndReceive返回数据延时高问题

362 阅读1分钟
1.  代码如下:
```
  Set<MenuVO> all = new HashSet<>();
  List<Integer> roleIds = SecurityUtils.getRoles();
  roleIds.forEach(roleId -> all.addAll(sysMenuService.findMenuByRoleId(roleId)));

  PigxUser user = SecurityUtils.getUser();
  List<Integer> deptIdByRole = sysDeptService.getDeptIdByRole();
  List<HashMap> res = all.stream().parallel()
        .filter(m -> StrUtil.isNotBlank(m.getPermission()) && StrUtil.isNotBlank(m.getServiceName()))
        .map(m -> {
           MenuBadgeParam param = new MenuBadgeParam();
           param.setDeptId(user.getDeptId());
           param.setUserId(user.getId());
           param.setRoleIds(roleIds);
           param.setDeptIds(deptIdByRole);
           param.setPermission(m.getPermission());
           long t1 = System.currentTimeMillis();
           Object num = rabbitTemplate.convertSendAndReceive(m.getServiceName() + "-" + user.getGray(), m.getServiceName() + "-" + user.getGray(), param);
           log.info("menu---" + num + "-------" + m.getPermission() + "------time:" + (System.currentTimeMillis() - t1));
           HashMap<Object, Object> map = new HashMap<>();
           map.put("permission", m.getPermission());
           if (Objects.isNull(num)) {
              map.put("menuBadgeNum", 0);
           } else {
              try {
                 map.put("menuBadgeNum", num);
              } catch (Exception ex) {
                 map.put("menuBadgeNum", 0);
              }
           }
           return map;
        }).collect(Collectors.toList());
  return R.ok(res);

返回结果如下: menu---null-------examineFire_pc------time:5271

menu---null-------zsck_btn------time:5476