From 5b0d097f88d4c66d944cb88615980e823e1f016c Mon Sep 17 00:00:00 2001 From: "A. Svensson" Date: Wed, 25 Feb 2015 18:22:30 +0100 Subject: [PATCH] Make sure the redis db doesn't grow out of control. --- src/gameservers/management/commands/update_population.py | 4 +++- src/gameservers/models.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gameservers/management/commands/update_population.py b/src/gameservers/management/commands/update_population.py index 1acb1e2..e51e07e 100755 --- a/src/gameservers/management/commands/update_population.py +++ b/src/gameservers/management/commands/update_population.py @@ -106,6 +106,9 @@ class Command(BaseCommand): else: servers_handled.append(data['title']) + # Keep the amount of data down in redis + history.trim_points(server) + # TODO: do bulk insert instead! server, created = Server.objects.update_or_create( title=data['title'], @@ -118,7 +121,6 @@ class Command(BaseCommand): # Update the player history history.add_point(server, now, data['player_count']) - history.trim_points(server) Server.remove_old_servers() diff --git a/src/gameservers/models.py b/src/gameservers/models.py index 0402436..7c522c4 100644 --- a/src/gameservers/models.py +++ b/src/gameservers/models.py @@ -42,8 +42,10 @@ class PlayerHistory(object): self.redis.lpush(server, '{},{}'.format(time, players)) def trim_points(self, server): - '''Trim away too old points in the player history.''' + '''Trim away too old points and servers in the player history.''' self.redis.ltrim(server, 0, self.max_points) + # let the list expire after a week without updates + self.redis.expire(server, 604800) def get_points(self, server): '''Get a range of points from the player history.'''