From a1549aa2907ca1ddbf5a9f36f44f23e39be7da3c Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Mon, 23 Jul 2012 10:44:32 -0700 Subject: [PATCH] Adding a touch of error handling in redis stories. --- apps/rss_feeds/models.py | 10 ++++++---- apps/social/models.py | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 6c0744708..6b87667f8 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -1337,13 +1337,15 @@ class MStory(mongo.Document): def sync_redis(self): r = redis.Redis(connection_pool=settings.REDIS_STORY_POOL) - r.sadd('F:%s' % self.story_feed_id, self.id) - r.zadd('zF:%s' % self.story_feed_id, self.id, time.mktime(self.story_date.timetuple())) + if self.id: + r.sadd('F:%s' % self.story_feed_id, self.id) + r.zadd('zF:%s' % self.story_feed_id, self.id, time.mktime(self.story_date.timetuple())) def remove_from_redis(self): r = redis.Redis(connection_pool=settings.REDIS_STORY_POOL) - r.srem('F:%s' % self.story_feed_id, self.id) - r.zrem('zF:%s' % self.story_feed_id, self.id) + if self.id: + r.srem('F:%s' % self.story_feed_id, self.id) + r.zrem('zF:%s' % self.story_feed_id, self.id) @classmethod def sync_all_redis(cls, story_feed_id=None): diff --git a/apps/social/models.py b/apps/social/models.py index 29689ffbd..92c5e0db9 100644 --- a/apps/social/models.py +++ b/apps/social/models.py @@ -757,7 +757,7 @@ class MSocialSubscription(mongo.Document): if not ignore_user_stories: r.delete(unread_stories_key) - return story_ids + return [story_id for story_id in story_ids if story_id] @classmethod def feed_stories(cls, user_id, feed_ids, offset=0, limit=6, order='newest', read_filter='all'): @@ -1246,9 +1246,10 @@ class MSharedStory(mongo.Document): if not redis_conn: redis_conn = redis.Redis(connection_pool=settings.REDIS_STORY_POOL) - redis_conn.sadd('SF:%s' % self.user_id, self.story_db_id) - redis_conn.zadd('zSF:%s' % self.user_id, self.story_db_id, - time.mktime(self.shared_date.timetuple())) + if self.story_db_id: + redis_conn.sadd('SF:%s' % self.user_id, self.story_db_id) + redis_conn.zadd('zSF:%s' % self.user_id, self.story_db_id, + time.mktime(self.shared_date.timetuple())) def remove_from_redis(self): r = redis.Redis(connection_pool=settings.REDIS_POOL)