在 spring 间隔内刷新 bean

Refresh bean in spring with interval

我开发了一个使用ehcache 的springMVC 应用程序。缓存项是从另一个系统中获取的。我不知道这些项目什么时候会在下一个系统中得到改变。我需要定期触发一个网络服务调用,比如 5 小时或 3 小时的间隔,以便获取更改的项目并在缓存中更新。

是否可以在特定时间间隔内刷新 bean,以便在刷新时调用 Web 服务并刷新缓存。

解决您的问题的最简单方法可能是创建一个定期执行的作业来触发 WebService 调用。

像这样:

@Service
public class WebServiceRefreshService {

  public static final int SERVICE_CALL_RATE_MILLISECONDS = 60 * 1000;

 @Scheduled(fixedRate = SERVICE_CALL_RATE_MILLISECONDS)
    public void refreshFromWebService() {
      //do stuff
    }
}