All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oath.micro.server.event.metrics.TimerManager Maven / Gradle / Ivy

package com.oath.micro.server.event.metrics;

import java.util.concurrent.TimeUnit;

import com.codahale.metrics.Timer.Context;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import cyclops.control.Maybe;

public class TimerManager {

    private final Cache contexts;

    public TimerManager(long maxSize, int minutesUntilExpire) {
        contexts = CacheBuilder.newBuilder()
                               .maximumSize(maxSize)
                               .expireAfterWrite(minutesUntilExpire, TimeUnit.MINUTES)
                               .build();
    }

    public void complete(String id) {
        Maybe.ofNullable(contexts.getIfPresent(id))
             .forEach(Context::stop);
        contexts.invalidate(id);
    }

    public void start(String id, Context context) {
        contexts.put(id, context);

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy