summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-01 16:25:52 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-01 16:25:52 -0400
commit81050cd0e701772a47b224579fbd4f49b59af9a7 (patch)
treeb069695c5479941bf9fc64feae7c34b38000a75d
parent16439f8b00ca909798eee0dadde901215634acab (diff)
downloadaskbot-81050cd0e701772a47b224579fbd4f49b59af9a7.tar.gz
askbot-81050cd0e701772a47b224579fbd4f49b59af9a7.tar.bz2
askbot-81050cd0e701772a47b224579fbd4f49b59af9a7.zip
added items per transaction on the clean_session management command
-rw-r--r--askbot/management/commands/clean_session.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/askbot/management/commands/clean_session.py b/askbot/management/commands/clean_session.py
index 6800420b..2e663b22 100644
--- a/askbot/management/commands/clean_session.py
+++ b/askbot/management/commands/clean_session.py
@@ -3,10 +3,13 @@ works only when sessions are stored in the database
"""
from django.core.management.base import NoArgsCommand
from django.contrib.sessions.models import Session
+from django.db import transaction
from optparse import make_option
from askbot.utils.console import ProgressBar
from datetime import datetime
+ITEMS_PER_TRANSACTION = 1000
+
class Command(NoArgsCommand):
"""Django management command class"""
@@ -19,6 +22,7 @@ class Command(NoArgsCommand):
),
)
+ @transaction.commit_manually
def handle_noargs(self, **options):
"""deletes old sessions"""
quiet = options.get('quiet', False)
@@ -32,6 +36,11 @@ class Command(NoArgsCommand):
message = 'There are %d expired sessions' % count
expired_sessions = ProgressBar(expired_sessions, count, message)
+ deleted_count = 0
for session in expired_sessions:
session.delete()
+ deleted_count += 1
+ if deleted_count % ITEMS_PER_TRANSACTION == 0:
+ transaction.commit()
+ transaction.commit()