1

我想要一个石英作业以定期填充地图(来自网络服务调用),然后从网络层访问该地图(以显示给用户)。

我在想只是做一项服务(鉴于服务是单例的),但我有点担心不将状态存储在服务中的建议

class MapService {
    def map = [:]
}

做这个的最好方式是什么?

4

1 回答 1

2

如果您不担心在应用程序运行时将数据保存在内存中,您可以ConcurrentHashMap在您的服务中使用并存储您需要的数据。将其视为缓存而不是可靠的存储。

正如您所说,服务是单例的only one instance of the service ever exists,并且concurrentMapA hash table supporting full concurrency of retrievals and adjustable expected concurrency for updates.

前任:

calss MyService() {

    ConcurrentHashMap cacheMap = [:]

    def retrieveCache(String key) {
        cacheMap[(key)]
    }

    def resetCache(){
        cacheMap = [:]
    }

    def doSomething(){
        ..
        cacheMap.put(key,value)
    }

}

类似的帖子

于 2013-07-31T11:33:54.463 回答