1

Quartz ジョブで (Web サービス呼び出しから) 定期的にマップにデータを入力し、Web レイヤーからそのマップにアクセスして (ユーザーに表示する) 必要があります。

(サービスがシングルトンであることを考えると)サービスを行うことだけを考えていましたが、状態をサービスに保存しないという推奨事項が少し心配です。

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 に答える