Mercurial > public > sg101
view gpp/core/tasks.py @ 552:9e42e6618168
For bitbucket issue #2, tweak the admin settings for the Post model to
reduce slow queries. Define our own queryset() method so we can control the
select_related(), and not have it cascade from post to topics to forums to
categories. Removed 'topic' from list_display because MySQL still sucked with
2 inner joins. Now it seems to be tolerable with only one join to User.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 25 Jan 2012 20:07:03 -0600 |
parents | f72ace06658a |
children |
line wrap: on
line source
""" 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()