# HG changeset patch # User Brian Neal # Date 1323998255 0 # Node ID 5171a5e9353b3fec53360b2521e9729919dc605b # Parent 666147a2cc0893ef4b88c27539c41fdfa40fb09d For #194, add a celery task for purging deleted private messages. diff -r 666147a2cc08 -r 5171a5e9353b gpp/core/tasks.py --- 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() diff -r 666147a2cc08 -r 5171a5e9353b gpp/messages/management/commands/purge_messages.py --- 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 diff -r 666147a2cc08 -r 5171a5e9353b gpp/messages/tasks.py --- /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() diff -r 666147a2cc08 -r 5171a5e9353b gpp/settings/base.py --- 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'), + } } #######################################################################