2013-07-31 16 views
1

我想要一个石英作业定期填充地图(从Web服务调用),然后从Web图层访问该地图(以向用户显示)。应用程序全图

我在想只是做一项服务(因为服务是单身人士),但我有点担心the recommendation not to store state in a service

class MapService { 
    def map = [:] 
} 

这样做的最好方法是什么?

+0

我将存储映射到数据库,并在每个INTERVALL取从数据库映射并推送新的entrys和保存,所以在weblayer上你只能从数据库中获取。另一个想法是,你没有任何时间间隔地图的人口,但总是当用户请求显示它们,然后它的持久 –

+0

我希望不会将它们保存到数据库...或者在用户访问该页面时获取它们: ) – zoran119

+0

你是否能够实现你正在寻找的东西? – Alidad

回答

2

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

正如你也说了,服务是单only one instance of the service ever existsconcurrentMapA 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