changeset 518:5171a5e9353b

For #194, add a celery task for purging deleted private messages.
author Brian Neal <bgneal@gmail.com>
date Fri, 16 Dec 2011 01:17:35 +0000
parents 666147a2cc08
children f72ace06658a
files gpp/core/tasks.py gpp/messages/management/commands/purge_messages.py gpp/messages/tasks.py gpp/settings/base.py
diffstat 4 files changed, 27 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gpp/core/tasks.py	Thu Dec 15 02:49:16 2011 +0000
+++ b/gpp/core/tasks.py	Fri Dec 16 01:17:35 2011 +0000
@@ -31,8 +31,13 @@
     A task to perform site-wide cleanup actions.
 
     """
+    # These imports, when placed at the top of the module, caused all kinds of
+    # import problems when running on the production server (Python 2.5 and
+    # mod_wsgi). Moving them here worked around that problem.
+
     from django.core.management.commands.cleanup import Command as CleanupCommand
     from forums.management.commands.forum_cleanup import Command as ForumCleanup
+
     # Execute Django's cleanup command (deletes old sessions).
 
     command = CleanupCommand()
--- a/gpp/messages/management/commands/purge_messages.py	Thu Dec 15 02:49:16 2011 +0000
+++ b/gpp/messages/management/commands/purge_messages.py	Fri Dec 16 01:17:35 2011 +0000
@@ -1,5 +1,5 @@
 """
-purge_messages is a custom manage.py command for the messages application. 
+purge_messages is a custom manage.py command for the messages application.
 It is intended to be called from a cron job to purge messages that have been
 deleted by both sender and receiver.
 """
@@ -16,5 +16,3 @@
         Message.objects.filter(sender_delete_date__isnull=False,
                 receiver_delete_date__isnull=False).delete()
 
-
-# vim: ts=4 sw=4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpp/messages/tasks.py	Fri Dec 16 01:17:35 2011 +0000
@@ -0,0 +1,17 @@
+"""
+Celery tasks for the messages application.
+
+"""
+from celery.task import task
+
+
+@task
+def purge_messages():
+    """
+    Task to purge messages that have been deleted by both sender & receiver.
+
+    """
+    from messages.management.commands.purge_messages import Command
+
+    command = Command()
+    command.execute()
--- a/gpp/settings/base.py	Thu Dec 15 02:49:16 2011 +0000
+++ b/gpp/settings/base.py	Fri Dec 16 01:17:35 2011 +0000
@@ -224,6 +224,10 @@
         "task": "core.tasks.cleanup",
         "schedule": crontab(minute=0, hour=1),
     },
+    "purge messages": {
+        "task": "messages.tasks.purge_messages",
+        "schedule": crontab(minute=30, hour=1, day_of_week='sunday'),
+    }
 }
 
 #######################################################################