def update_first_visible_message_id(realm: Realm) -> None: try: first_visible_message_id = Message.objects.filter(sender__realm=realm).values('id').\ order_by('-id')[realm.message_visibility_limit - 1]["id"] except IndexError: first_visible_message_id = 0 cache_set(realm_first_visible_message_id_cache_key(realm), first_visible_message_id)
def maybe_update_first_visible_message_id(realm: Realm, lookback_hours: int) -> None: cache_empty = cache_get( realm_first_visible_message_id_cache_key(realm)) is None recent_messages_count = estimate_recent_messages(realm, lookback_hours) if realm.message_visibility_limit is not None and ( recent_messages_count > 0 or cache_empty): update_first_visible_message_id(realm)
def update_first_visible_message_id(realm: Realm) -> None: try: # We have verified that the limit is not none before calling this function. assert realm.message_visibility_limit is not None first_visible_message_id = Message.objects.filter(sender__realm=realm).values('id').\ order_by('-id')[realm.message_visibility_limit - 1]["id"] except IndexError: first_visible_message_id = 0 cache_set(realm_first_visible_message_id_cache_key(realm), first_visible_message_id)
def get_first_visible_message_id(realm: Realm) -> int: val = cache_get(realm_first_visible_message_id_cache_key(realm)) if val is not None: return val[0] return 0
def maybe_update_first_visible_message_id(realm: Realm, lookback_hours: int) -> None: cache_empty = cache_get(realm_first_visible_message_id_cache_key(realm)) is None recent_messages_count = estimate_recent_messages(realm, lookback_hours) if realm.message_visibility_limit is not None and (recent_messages_count > 0 or cache_empty): update_first_visible_message_id(realm)