首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lagom:缓存外部服务调用

Lagom:缓存外部服务调用
EN

Stack Overflow用户
提问于 2017-05-30 16:07:58
回答 2查看 344关注 0票数 0

我正在使用Swift Stack的Joss客户端实现一个调用外部服务的Lagom服务。为了不在每次调用服务时都调用外部服务,我如何缓存这些信息?

EN

回答 2

Stack Overflow用户

发布于 2017-12-20 01:56:46

您可以使用任何缓存库,如ehcache/guava。当您第一次调用外部服务时,您将把数据放入缓存中,下一次,您将在缓存中找到数据,并从那里填充响应。

票数 0
EN

Stack Overflow用户

发布于 2018-04-10 04:14:51

像这样使用smth缓存A类的对象:

代码语言:javascript
复制
@Singleton
public class ACache {

    public final Cache<String, A> cache;

    public SplResultsCache() {
        this.cache = CacheBuilder.newBuilder().expireAfterWrite(60, TimeUnit.MINUTES).build();
    }

    public Cache<String, A> get(){
        return this.cache;
    }
}

您必须使用以下内容在模块中注册服务:

代码语言:javascript
复制
bind(ACache.class).asEagerSingleton();

然后将其注入您的服务中:

代码语言:javascript
复制
private SplResultsCache cache;

public AService(ACache cache) {
    this.cache = cache;
}

最后,您可以在AService的方法中使用它,如下所示:

代码语言:javascript
复制
A a = this.cache.get().getIfPresent(cacheKey);

当然,您也可以重载缓存的方法来直接访问它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44256827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档