2017-08-15 5 views
0

getNameTimeConsumingMethodメソッドを呼び出すときに、Springキャッシュ抽象化を使用してどのように処理するのですが、結果がキャッシュにない場合、このメソッドの実行を待って戻りません。結果のメソッドgetNameIfNotInCache。ハゼルキャストと時間のかかるメソッドを使用したSpringキャッシュ抽象化

@Cacheable(value = "cacheName", key = "#key") 
public String getNameTimeConsumingMethod(String key) { 
//time consuming method 
} 


public String getNameIfNotInCache(String key) { 
//fast method if cacheName does not have a key 
} 

答えて

0

キーがキャッシュにある場合、結果はキャッシュから返されるため、getNameTimeConsumingMethodは実行されません。 キーがキャッシュにない場合は、getNameIfNotInCacheを実行します。

私が結論づけているのは、getNameTimeConsumingMethodの中で何も実行したくないということです。 次にgetNameIfNotInCacheをgetNameTimeConsumingMethodから呼び出して返します。

+0

キーがキャッシュにない場合は、getNameIfNotInCacheの戻り値が必要ですが、メソッドgetNameTimeConsumingMethodをバックグラウンドで実行し、このメソッドがキャッシュに新しい値を追加するようにします。 – Wait

関連する問題