我有一個類使用靜態緩存,該靜態緩存在類的所有實例之間共享。我希望能夠在運行時設置緩存超時。使用命令行參數初始化靜態緩存
提供一個具體的用例:我緩存從雲存儲中獲取的值。我想在開發環境中比在prod中更快地刷新值。部署代碼時,它會爲與該環境相對應的配置文件提供參數。此配置文件可以包含緩存刷新時間的值。
public class Pipeline {
private static final LoadingCache<BlobId, Definitions> CACHE =
CacheBuilder.newBuilder()
.refreshAfterWrite(VALUE, TimeUnit.MINUTES) // <-- how do I set VALUE from a config file?
.build(
new CacheLoader<BlobId, Definitions>() {
public Definitions load(BlobId key) throws Exception {
return DefinitionsLoader.load(key);
}
});
...
}