Example usage for com.google.common.cache CacheBuilder expireAfterWrite

List of usage examples for com.google.common.cache CacheBuilder expireAfterWrite

Introduction

In this page you can find the example usage for com.google.common.cache CacheBuilder expireAfterWrite.

Prototype

public CacheBuilder<K, V> expireAfterWrite(long duration, TimeUnit unit) 

Source Link

Document

Specifies that each entry should be automatically removed from the cache once a fixed duration has elapsed after the entry's creation, or the most recent replacement of its value.

Usage

From source file:org.restheart.cache.impl.GuavaLoadingCache.java

public GuavaLoadingCache(long size, EXPIRE_POLICY expirePolicy, long ttl, Function<K, V> loader) {
    CacheBuilder builder = CacheBuilder.newBuilder();

    builder.maximumSize(size);/*from ww w.  j av  a  2  s . c o m*/

    if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_WRITE) {
        builder.expireAfterWrite(ttl, TimeUnit.MILLISECONDS);
    } else if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_READ) {
        builder.expireAfterAccess(ttl, TimeUnit.MILLISECONDS);
    }

    wrapped = builder.build(new CacheLoader<K, Optional<V>>() {
        @Override
        public Optional<V> load(K key) throws Exception {
            return Optional.ofNullable(loader.apply(key));
        }
    });
}

From source file:org.restheart.cache.impl.GuavaCache.java

public GuavaCache(long size, EXPIRE_POLICY expirePolicy, long ttl) {
    CacheBuilder builder = CacheBuilder.newBuilder();

    builder.maximumSize(size);/*from   w  w w .  j a v a2 s  .  com*/

    if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_WRITE) {
        builder.expireAfterWrite(ttl, TimeUnit.MILLISECONDS);
    } else if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_READ) {
        builder.expireAfterAccess(ttl, TimeUnit.MILLISECONDS);
    }

    wrapped = builder.build();
}

From source file:org.restheart.cache.impl.GuavaCache.java

public GuavaCache(long size, EXPIRE_POLICY expirePolicy, long ttl,
        Consumer<Map.Entry<K, Optional<V>>> remover) {
    CacheBuilder builder = CacheBuilder.newBuilder();

    builder.maximumSize(size);/*from  w w  w  .j  a v a 2  s.  c om*/

    if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_WRITE) {
        builder.expireAfterWrite(ttl, TimeUnit.MILLISECONDS);
    } else if (ttl > 0 && expirePolicy == EXPIRE_POLICY.AFTER_READ) {
        builder.expireAfterAccess(ttl, TimeUnit.MILLISECONDS);
    }

    wrapped = builder.removalListener((RemovalNotification notification) -> {
        remover.accept(notification);
    }).build();
}

From source file:com.streamsets.pipeline.stage.processor.dedup.DeDupProcessor.java

@Override
@SuppressWarnings("unchecked")
protected List<ConfigIssue> init() {
    List<ConfigIssue> issues = super.init();
    if (recordCountWindow <= 0) {
        issues.add(getContext().createConfigIssue(Groups.DE_DUP.name(), "recordCountWindow", Errors.DEDUP_00,
                recordCountWindow));/*from w  ww  .  j av a  2  s .  co  m*/
    }
    if (timeWindowSecs < 0) {
        issues.add(getContext().createConfigIssue(Groups.DE_DUP.name(), "timeWindowSecs", Errors.DEDUP_01,
                timeWindowSecs));
    }
    if (compareFields == SelectFields.SPECIFIED_FIELDS && fieldsToCompare.isEmpty()) {
        issues.add(getContext().createConfigIssue(Groups.DE_DUP.name(), "compareFields", Errors.DEDUP_02));
    }

    long estimatedMemory = MEMORY_USAGE_PER_HASH * recordCountWindow;
    long maxPipelineMemoryBytes = getContext().getPipelineMaxMemory() * 1000 * 1000;
    if (estimatedMemory > maxPipelineMemoryBytes) {
        issues.add(getContext().createConfigIssue(Groups.DE_DUP.name(), "recordCountWindow", Errors.DEDUP_03,
                recordCountWindow, estimatedMemory / (1000 * 1000), getContext().getPipelineMaxMemory()));
        //MiB to bytes conversion, use  1000 * 1000 instead of 1024 * 1024
    }
    if (issues.isEmpty()) {
        hasher = HashingUtil.getHasher("murmur3_128");
        funnel = (compareFields == SelectFields.ALL_FIELDS)
                ? HashingUtil.getRecordFunnel(Collections.EMPTY_LIST)
                : HashingUtil.getRecordFunnel(fieldsToCompare);
        CacheBuilder cacheBuilder = CacheBuilder.newBuilder();
        if (timeWindowSecs > 0) {
            cacheBuilder.expireAfterWrite(timeWindowSecs, TimeUnit.SECONDS);
        }
        hashCache = cacheBuilder.build(new CacheLoader<HashCode, Object>() {
            @Override
            public Object load(HashCode key) throws Exception {
                return VOID;
            }
        });
        hashBuffer = XEvictingQueue.create(recordCountWindow);
        hashAttrName = getInfo() + ".hash";
        uniqueLane = getContext().getOutputLanes().get(OutputStreams.UNIQUE.ordinal());
        duplicateLane = getContext().getOutputLanes().get(OutputStreams.DUPLICATE.ordinal());
    }
    return issues;
}

From source file:org.trimou.engine.cache.DefaultComputingCacheFactory.java

@Override
public <K, V> ComputingCache<K, V> create(final String consumerId, final Function<K, V> computingFunction,
        final Long expirationTimeout, final Long maxSize, final Listener<K> listener) {

    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();

    if (expirationTimeout != null && expirationTimeout > 0) {
        builder.expireAfterWrite(expirationTimeout, TimeUnit.MILLISECONDS);
    }//from   w  w  w. j a v  a2s.  c  o m
    if (maxSize != null) {
        builder.maximumSize(maxSize);
    }
    if (listener != null) {
        builder.removalListener(new RemovalListener<K, V>() {
            @Override
            public void onRemoval(RemovalNotification<K, V> notification) {
                listener.entryInvalidated(notification.getKey(), notification.getCause().toString());
            }
        });
    }
    return new LoadingCacheAdapter<K, V>(builder.build(new CacheLoaderAdapter<K, V>(computingFunction)));
}

From source file:org.opennms.plugins.elasticsearch.rest.NodeCacheImpl.java

public void init() {
    if (cache == null) {
        LOG.info("initializing node data cache (TTL=" + MAX_TTL + "m, MAX_SIZE=" + MAX_SIZE + ")");
        CacheBuilder cacheBuilder = CacheBuilder.newBuilder();
        if (MAX_TTL > 0) {
            cacheBuilder.expireAfterWrite(MAX_TTL, TimeUnit.MINUTES);
        }/*w  w  w.  j  a  va2s  . c o m*/
        if (MAX_SIZE > 0) {
            cacheBuilder.maximumSize(MAX_SIZE);
        }

        cache = cacheBuilder.build(new CacheLoader<Long, Map<String, String>>() {
            @Override
            public Map<String, String> load(Long key) throws Exception {
                return getNodeAndCategoryInfo(key);
            }
        });
    }
}

From source file:com.codeabovelab.dm.platform.cache.ConfigurableGuavaCacheManager.java

private com.google.common.cache.Cache<Object, SimpleValueWrapper> buildCache(CacheConfig cacheConfig) {
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    if (cacheConfig.getExpireAfterWrite() >= 0) {
        builder.expireAfterWrite(cacheConfig.getExpireAfterWrite(), TimeUnit.MILLISECONDS);
    }/*  w w  w  .  j  a  va  2  s.  c  om*/
    return builder.build();
}

From source file:com.googlecode.webutilities.common.cache.impl.GoogleCache.java

public GoogleCache(CacheConfig<K, V> cacheConfig) {
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder().softValues();
    // if(reloadAfterAccess > 0)
    //     builder.expireAfterAccess(reloadAfterAccess, TimeUnit.SECONDS);
    if (cacheConfig.getReloadTime() > 0)
        builder.expireAfterWrite(cacheConfig.getReloadTime(), TimeUnit.SECONDS);
    googleCache = builder.build();//ww  w. j  a  v a  2  s . c o  m
}

From source file:com.enitalk.configs.DateCache.java

@Bean(name = "exchangeCache")
public LoadingCache<String, BigDecimal> exchange() {
    CacheBuilder<Object, Object> ccc = CacheBuilder.newBuilder();
    ccc.expireAfterWrite(30, TimeUnit.MINUTES);

    LoadingCache<String, BigDecimal> cache = ccc.build(new CacheLoader<String, BigDecimal>() {

        @Override/*from  w  w  w  .  java  2s .c  om*/
        public BigDecimal load(String key) throws Exception {
            try {
                return TinkoffController.exchangeRate(jackson);

            } catch (Exception e) {
                logger.error(ExceptionUtils.getFullStackTrace(e));
            }
            return null;
        }

    });

    return cache;
}

From source file:org.eluder.jersey.mustache.ReloadingMustacheFactory.java

@Override
protected LoadingCache<String, Mustache> createMustacheCache() {
    int templateExpiryMillis = getTemplateExpiryMillis();
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    if (templateExpiryMillis > ETERNAL_CACHE_VALUE) {
        builder.expireAfterWrite(templateExpiryMillis, TimeUnit.MILLISECONDS);
    }/*from  w w w  .j  ava 2 s . c o  m*/
    return builder.build(createMustacheCacheLoader());
}