Mercurial > public > sg101
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()