view gpp/core/tasks.py @ 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
line wrap: on
line source
"""
Celery tasks for the core application.

"""
from celery.task import task
import django.core.mail


@task
def add(x, y):
    """
    It is useful to have a test task laying around. This is it.

    """
    return x + y


@task
def send_mail(subject, message, from_email, recipient_list, **kwargs):
    """
    A task to send mail via Django.

    """
    django.core.mail.send_mail(subject, message, from_email, recipient_list,
            **kwargs)


@task
def cleanup():
    """
    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()
    command.execute()

    # Execute our forum cleanup command to delete old last visit records.

    command = ForumCleanup()
    command.execute()