文字列値を保持し、要素がまだ存在しない場合は要素を追加するための同期メソッドを持つJavaコレクションが必要です(addIfAbsentはArrayList用です)。コレクションは交通量が多いでしょう。また、コレクションのエントリが期限切れになるまでのタイムアウトメカニズムが必要です。タイムアウトは約5秒である必要があります。
エレガントなソリューションの提案はありますか?タイムアウトメカニズムのないコレクションの選択も役立ちます。
ご協力いただきありがとうございます。
文字列値を保持し、要素がまだ存在しない場合は要素を追加するための同期メソッドを持つJavaコレクションが必要です(addIfAbsentはArrayList用です)。コレクションは交通量が多いでしょう。また、コレクションのエントリが期限切れになるまでのタイムアウトメカニズムが必要です。タイムアウトは約5秒である必要があります。
エレガントなソリューションの提案はありますか?タイムアウトメカニズムのないコレクションの選択も役立ちます。
ご協力いただきありがとうございます。
何らかの形式のキャッシュメカニズムを実装しようとしていますか?もしそうなら、車輪の再発明をする必要はありません。EhCacheなどのキャッシュ実装を使用できます。
このスレッドを見てください:タイムアウト付きのコレクション(キャッシュ)に関する同様の質問
タイムアウトを、コレクションに挿入されたアイテムが削除されるまでの時間値として解釈します。GuavaCacheの実装がニーズに適している可能性がありますか?putIfAbsent
メソッドを直接公開するわけではありませんが、必要に応じて、CacheLoader
またはを使用しCallable
て値を生成できます。
String value = cache.get("key", new Callable<String>() { ... });
cache
指定されたの値が含まれていない場合、callableが呼び出されkey
ます。