From 87eca2951b1c70f8b533edc52f70d3e1a651e799 Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Mon, 7 Oct 2013 14:47:36 -0700 Subject: [PATCH] Only trimming active users. --- apps/reader/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/reader/models.py b/apps/reader/models.py index 3afa73eab..e248dd467 100644 --- a/apps/reader/models.py +++ b/apps/reader/models.py @@ -422,11 +422,15 @@ class UserSubscription(models.Model): def trim_user_read_stories(self, user_id): r = redis.Redis(connection_pool=settings.REDIS_STORY_HASH_POOL) subs = UserSubscription.objects.filter(user_id=user_id).only('feed') + if not subs: return feeds = [f.feed_id for f in subs] old_rs = r.smembers("RS:%s" % user_id) + old_count = len(old_rs) # new_rs = r.sunionstore("RS:%s" % user_id, *["RS:%s:%s" % (user_id, f) for f in feeds]) new_rs = r.sunion(*["RS:%s:%s" % (user_id, f) for f in feeds]) + if not old_count: return + r.sunionstore("RS:%s:backup" % user_id, "RS:%s" % user_id) r.expire("RS:%s:backup" % user_id, 60*60*24) @@ -442,7 +446,6 @@ class UserSubscription(models.Model): missing_rs.append(rs) # r.sadd("RS:%s" % user_id, *missing_rs) - old_count = len(old_rs) new_count = len(new_rs) missing_count = len(missing_rs) new_total = new_count + missing_count