【发布时间】:2020-03-10 01:20:52
【问题描述】:
我有这样的控制器:
@RestController
@RequestMapping("/stats")
public class StatisticsController {
@Autowired
private LeadFeignClient lfc;
private List<Lead> list;
@GetMapping("/leads")
private int getCount(@RequestParam(value = "count", defaultValue = "1") int countType) {
list = lfc.getLeads(AccessToken.getToken());
if (countType == 1) {
return MainEngine.getCount(list);
} else if (countType == 2) {
return MainEngine.getCountRejected(list);
} else if (countType == 3) {
return MainEngine.getCountPortfolio(list);
} else if (countType == 4) {
return MainEngine.getCountInProgress(list);
} else if (countType == 5) {
return MainEngine.getCountForgotten(list);
} else if (countType == 6) {
return MainEngine.getCountAddedInThisMonth(list);
} else if (countType == 7) {
return MainEngine.getCountAddedInThisYear(list);
} else {
throw new RuntimeException("Wrong mapping param");
}
}
@GetMapping("/trends")
private boolean getTrend() {
return MainEngine.tendencyRising(list);
}
它基本上是一个微服务,将根据“业务线索”列表处理统计信息。 FeignClient 正在获取修剪到所需数据线索的列表。一切正常。
我唯一关心的是性能 - 所有这些统计信息 (countTypes) 都将显示在 webapp 的登录页面上。如果我一一打电话给他们,是否每个电话都会一次又一次地检索潜在客户列表?或者列表会以某种方式存储在临时内存中?我可以想象,如果列表变长,加载它们可能需要一段时间。
我尝试通过@PostConstruct 在此方法之外调用它们以在服务启动时填充列表,但此解决方案有两个主要问题:oauth 令牌无法处理身份验证,检索到的列表对添加不敏感/deleting 线索,因为它只在开头加载。
【问题讨论】:
标签: spring-boot rest oauth microservices