我想要一个石英作业以定期填充地图(来自网络服务调用),然后从网络层访问该地图(以显示给用户)。
我在想只是做一项服务(鉴于服务是单例的),但我有点担心不将状态存储在服务中的建议。
class MapService {
def map = [:]
}
做这个的最好方式是什么?
我想要一个石英作业以定期填充地图(来自网络服务调用),然后从网络层访问该地图(以显示给用户)。
我在想只是做一项服务(鉴于服务是单例的),但我有点担心不将状态存储在服务中的建议。
class MapService {
def map = [:]
}
做这个的最好方式是什么?
如果您不担心在应用程序运行时将数据保存在内存中,您可以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)
}
}
类似的帖子