假设我正在编写一个由外部应用程序调用的Spring Web服务。该应用程序请求我需要从外部资源加载的数据。此外,设计使用不同参数调用我的服务不止一次。换句话说,坐在应用程序前面的用户按下一个按钮,这会在很短的时间内向我的网络服务生成一堆请求。
我的网络服务解析参数并向外部资源提出必要的请求。逻辑认为它可能导致一遍又一遍地使用相同的参数调用外部资源,这使得它成为缓存的理想候选者。
示例:
但是,对外部资源的一次调用可能需要一些时间。
据我所知how Spring does caching,它将@Cachable
方法的结果写入缓存。显然这意味着在它使用与cache hit相同的参数处理该方法的另一个调用之前,它必须具有先前调用的结果。这意味着它不支持挂起的方法调用。
我需要类似“嘿,我刚刚看到一个方法调用在一秒钟之前使用相同的参数,但我仍然在等待调用的结果。虽然我还不能提供结果,但我会坚持新的调用并重用它的结果。“
我有什么选择?我可以让Spring这样做吗?
答案 0 :(得分:1)