Как очистить concurrentHashMap за 8 часов, используя планировщик в java? - PullRequest
0 голосов
/ 14 февраля 2020

Я использовал concurrentHashMap для кэширования некоторых групп доступа. И я хочу чистить карту каждые 8 ​​часов.

@Override
    public GetAccessGroupsResponse getAccessGroups(IdentityContext identityContext, String userId, String orgId) {
        GetAccessGroupsResponse response = null;
        Date now = new Date();
        boolean isUsingCache = false;

    CachedAccessGroups accessGroups = cachedAccessGroups.get(userId);
    if (accessGroups != null) {
        if (now.getTime() - accessGroups.getCachedDate().getTime() < CACHE_TIMEOUT) {
            response = accessGroups.getAccessGroups();
            LOGGER.debug("Using cached access groups for {%s}", userId);
            isUsingCache = true;
        } else {
            LOGGER.debug("Cached access groups timed out for {%s}", userId);
            isUsingCache = false;
        }
    }
}
...