Fixing persistance of redis keys due to redis' RESTORE command using a millisecond TTL, not a second TTL.

This commit is contained in:
Samuel Clay 2013-10-08 10:05:28 -07:00
parent c2dcbe27f8
commit 2b08d13f6d
2 changed files with 9 additions and 3 deletions

View file

@ -199,7 +199,7 @@ class UserSubscription(models.Model):
if dump: if dump:
pipeline = rt.pipeline() pipeline = rt.pipeline()
pipeline.delete(unread_ranked_stories_key) pipeline.delete(unread_ranked_stories_key)
pipeline.restore(unread_ranked_stories_key, 1*60*60, dump) pipeline.restore(unread_ranked_stories_key, 1*60*60*1000, dump)
pipeline.execute() pipeline.execute()
r.delete(unread_ranked_stories_key) r.delete(unread_ranked_stories_key)

View file

@ -45,5 +45,11 @@ class RedisDumpMiddleware(object):
return instrumented_method return instrumented_method
def process_message(self, *args, **kwargs): def process_message(self, *args, **kwargs):
query = ' '.join([str(arg) for arg in args if not isinstance(arg, Connection)]) query = []
return { 'query': query, } for a, arg in enumerate(args):
if isinstance(arg, Connection):
continue
if args[1] == "RESTORE" and a == 4:
arg = "[%s bytes]" % len(arg)
query.append(str(arg).replace('\n', ''))
return { 'query': ' '.join(query) }