def _check_within_range( self, key: bytes, count_func: Callable[[], int], trim_func: Optional[Callable[[bytes, int], object]] = None, ) -> None: user_id = int(key.split(b":")[2]) user = get_user_profile_by_id(user_id) entity = RateLimitedUser(user) max_calls = entity.max_api_calls() age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s", age, key) count = count_func() if count > max_calls: logging.error( "Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s", key, count, ) if trim_func is not None: client.expire(key, entity.max_api_window()) trim_func(key, max_calls)
def _check_within_range( self, key: str, count_func: Callable[[], int], trim_func: Optional[Callable[[str, int], None]] = None) -> None: user_id = int(key.split(':')[1]) try: user = get_user_profile_by_id(user_id) except Exception: user = None entity = RateLimitedUser(user) max_calls = max_api_calls(entity) age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s" % ( age, key, )) count = count_func() if count > max_calls: logging.error("Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s" % (key, count)) if trim_func is not None: client.expire(key, max_api_window(entity)) trim_func(key, max_calls)
def _check_within_range(self, key: str, count_func: Callable[[], int], trim_func: Optional[Callable[[str, int], None]]=None) -> None: user_id = int(key.split(':')[1]) user = get_user_profile_by_id(user_id) entity = RateLimitedUser(user) max_calls = max_api_calls(entity) age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s" % (age, key,)) count = count_func() if count > max_calls: logging.error("Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s" % (key, count)) if trim_func is not None: client.expire(key, max_api_window(entity)) trim_func(key, max_calls)
def _check_within_range(self, key, count_func, trim_func=None): user_id = int(key.split(':')[1]) try: user = get_user_profile_by_id(user_id) except: user = None max_calls = max_api_calls(user=user) age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s" % (age, key,)) count = count_func() if count > max_calls: logging.error("Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s" % (key, count)) if trim_func is not None: client.expire(key, max_api_window(user=user)) trim_func(key, max_calls)
def _check_within_range(self, key, count_func, trim_func): user_id = int(key.split(':')[1]) try: user = get_user_profile_by_id(user_id) except: user = None max_calls = max_api_calls(user=user) age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s" % (age, key,)) count = count_func() if count > max_calls: logging.error("Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s" % (key, count)) if self.trim: client.expire(key, max_api_window(user=user)) trim_func(key, max_calls)
def _check_within_range(self, key, count_func, trim_func=None): # type: ignore # mypy #1567 should be (str, Callable[[], int], Optional[Callable[[str, int], None]]) -> None user_id = int(key.split(':')[1]) try: user = get_user_profile_by_id(user_id) except: user = None max_calls = max_api_calls(user=user) age = int(client.ttl(key)) if age < 0: logging.error("Found key with age of %s, will never expire: %s" % ( age, key, )) count = count_func() if count > max_calls: logging.error("Redis health check found key with more elements \ than max_api_calls! (trying to trim) %s %s" % (key, count)) if trim_func is not None: client.expire(key, max_api_window(user=user)) trim_func(key, max_calls)