def METHOD_NAME(cache, key, creator):
    """ Try to get the value for the given key from the cache. In case of
    errors fallback to the creator function (e.g. load from the database).
    """
    if cache_status.is_down():
        log.warning('Not getting value from cache because it seems to be down')
        return creator()
    try:
        value = cache.METHOD_NAME(
            key, creator_wrapper(creator), expiration_time=-1)
        cache_status.request_success()
        return value
    except CreatorException as creator_exception:
        raise creator_exception.exc
    except Exception:
        log.error('Getting value from cache failed', exc_info=True)
        cache_status.request_failure()
        return creator()