如何运行时间表并缓存某些数据列表,并通过请求处理程序方法使用Cacheable?

时间:2018-12-24 09:35:25

标签: spring-boot spring-cache spring-scheduled

说我有一个Spring-boot Web应用程序,现在,我希望调度程序每晚运行,以调用一个外部服务,以json格式获取数据集,并将其映射到java模型类中。

我需要使用spring缓存服务来缓存此数据。 这样,当我部署Web应用程序时,用户可以单击UI上的图标,该图标将调用我的控制器使用getData(HttpServletRequest req) api,然后检索所有缓存的数据。

再次执行调度程序时,我将cacheEvict保留所有数据并重新存储数据。

/*
when user click the ui icon this endpoint should get invoked, and 
the already cached data should be returned
*/
@GetMapping("/data")
public Student getData() {
 Student student= studentService.getStudents();
}

/*
Running schedular and fetching data.
*/

@Scheduled(initialDelayString = "DELAY", fixedRateString = 
"RATE")
public void callExternalService() 
{
  this.callExternalServiceAndGetData();

}

0 个答案:

没有答案