From 81050cd0e701772a47b224579fbd4f49b59af9a7 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Sat, 1 Sep 2012 16:25:52 -0400 Subject: added items per transaction on the clean_session management command --- askbot/management/commands/clean_session.py | 9 +++++++++ 1 file changed, 9 insertions(+) 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() -- cgit v1.2.3-1-g7c22