说我有一个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();
}