diff --git a/zerver/lib/cache.py b/zerver/lib/cache.py index aeeb861f63..68376ac5da 100644 --- a/zerver/lib/cache.py +++ b/zerver/lib/cache.py @@ -221,6 +221,9 @@ def cache(func): def message_cache_key(message_id): return "message:%d" % (message_id,) +def display_recipient_cache_key(recipient_id): + return "display_recipient_dict:%d" % (recipient_id,) + def user_profile_by_email_cache_key(email): # See the comment in zerver/lib/avatar.py:gravatar_hash for why we # are proactively encoding email addresses even though they will diff --git a/zerver/models.py b/zerver/models.py index 5a938e2342..0c23e86826 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -6,7 +6,8 @@ from django.contrib.auth.models import AbstractBaseUser, UserManager, \ PermissionsMixin from zerver.lib.cache import cache_with_key, update_user_profile_cache, \ user_profile_by_id_cache_key, user_profile_by_email_cache_key, \ - update_user_presence_cache, generic_bulk_cached_fetch, cache_set + update_user_presence_cache, generic_bulk_cached_fetch, cache_set, \ + display_recipient_cache_key from zerver.lib.utils import make_safe_digest, generate_random_token from django.db import transaction, IntegrityError from zerver.lib import bugdown @@ -35,7 +36,7 @@ def get_display_recipient(recipient): recipient_cache[recipient.id] = get_display_recipient_memcached(recipient) return recipient_cache[recipient.id] -@cache_with_key(lambda self: 'display_recipient_dict:%d' % (self.id,), +@cache_with_key(lambda self: display_recipient_cache_key(self.id), timeout=3600*24*7) def get_display_recipient_memcached(recipient): """