view core/tasks.py @ 861:e4f8d87c3d30

Configure Markdown logger to reduce noise in logs. Markdown is logging at the INFO level whenever it loads an extension. This looks like it has been fixed in master at GitHub. But until then we will explicitly configure the MARKDOWN logger to log at WARNING or higher.
author Brian Neal <bgneal@gmail.com>
date Mon, 01 Dec 2014 18:36:27 -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()