view core/tasks.py @ 887:9a15f7c27526

Actually save model object upon change. This commit was tested on the comments model. Additional logging added. Added check for Markdown image references. Added TODOs after observing behavior on comments.
author Brian Neal <bgneal@gmail.com>
date Tue, 03 Feb 2015 21:09:44 -0600
parents aeafbf3ecebf
children 79a71b9d0a2a
line wrap: on
line source
"""
Celery tasks for the core application.

"""
from __future__ import absolute_import

from celery import shared_task
import django.core.mail

import core.whos_online


@shared_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)


@shared_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.contrib.sessions.management.commands import clearsessions
    from forums.management.commands import forum_cleanup

    # Cleanup old sessions

    command = clearsessions.Command()
    command.execute()

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

    command = forum_cleanup.Command()
    command.execute()


@shared_task
def max_users():
    """
    Run the periodic task to calculate the who's online max users/visitors
    statistics.

    """
    core.whos_online.max_users()