缓存 – 在Grails中缓存昂贵的Web服务调用的最佳策略

前端之家收集整理的这篇文章主要介绍了缓存 – 在Grails中缓存昂贵的Web服务调用的最佳策略前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的Grails应用程序,需要在用户会话期间多次定期调用外部Web服务(使用界面).

我想缓存这个Web服务响应,但服务的结果会每隔几天更改一次,所以我想缓存一段时间(也许每天刷新).

Grails缓存插件似乎不支持“实时”实现,所以我一直在探索一些可能的解决方案.我想知道什么插件或编程解决方案最能解决这个问题.

例:

BuildConfig.groovy

plugins{
    compile ':cache:1.0.0'
}

MyController.groovy

def getItems(){
    def items = MyService.getItems()
    [items: items]
}

MyService.groovy

@Cacheable("itemsCache")
class MyService {
    def getItems() {
        def results

        //expensive external web service call

        return results
    }
}

UPDATE

有很多好的选择.我决定用Burt建议的插件方法.我已经在上面的代码示例中添加了一个小的更改的示例答案,以帮助他人想要做类似的事情.此配置在24小时后过期缓存.

BuildConfig.groovy

plugins{
    compile ':cache:1.1.7'
    compile ':cache-ehcache:1.0.1'
}

Config.groovy中

grails.cache.config = {
    defaultCache {
        maxElementsInMemory 10000
        eternal false
        timeToIdleSeconds 86400
        timeToLiveSeconds 86400
        overflowToDisk false
        maxElementsOnDisk 0
        diskPersistent false
        diskExpiryThreadIntervalSeconds 120
        memoryStoreEvictionPolicy 'LRU'
     }
 }

解决方法

原文链接:https://www.f2er.com/html/224100.html

猜你在找的HTML相关文章