我希望石英作业定期填充地图(来自Web服务调用),然后从Web图层访问该地图(以显示给用户)。
我在考虑做一项服务(假设服务是单身),但有点担心the recommendation not to store state in a service。
class MapService {
def map = [:]
}
这样做的最佳方式是什么?
答案 0 :(得分:2)
如果您不担心在应用程序运行时将数据保留在内存中,您可以在服务中使用ConcurrentHashMap
并存储所需的数据。把它看作缓存而不是可靠的存储。
正如您所说,服务是单身only one instance of the service ever exists
而concurrentMap
是A 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)
}
}
类似post