diff core/tasks.py @ 581:ee87ea74d46b

For Django 1.4, rearranged project structure for new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 May 2012 17:10:48 -0500
parents gpp/core/tasks.py@f72ace06658a
children 53a56d19568c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/tasks.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,61 @@
+"""
+Celery tasks for the core application.
+
+"""
+from celery.task import task
+import django.core.mail
+
+import core.whos_online
+
+
+@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()
+
+
+@task
+def max_users():
+    """
+    Run the periodic task to calculate the who's online max users/visitors
+    statistics.
+
+    """
+    core.whos_online.max_users()