Django и cron

Рейтинг: 3Ответов: 1Опубликовано: 23.06.2011

Возникла задача выполнять скрипт по расписанию. Вот начал гуглить и встал вопрос, актуально ли сейчас использовать django-cron или же можно обойтись написанием custom команды для manage.py.
PS
Собственно сейчас делаю для теста простой скрипт дампа базы. Потом надо будет делать рассылку.
UPD
Для дампа базы использовал хорошую тулзу Database Dump Script.
Для работы с cron использовал custom-команды, было интересно что и как. Скажу что все предельно просто. Создается команда которая вызывается через manage.py команда.
Преимущества: довольно просто задать свои атрибуты команды и входные параметры команды. Может есть более четкое мнение почему так лучше , чем изгаляться через скрипты. Буду рад узнать :)

Ответы

▲ 1Принят

Мне кажется, подключать дополнительные приложения и писать кастомные команды для выполнения задач по крону - это слишком много лишних телодвижений.
Достаточно написать простой Python-скрипт, в нем добавить путь к Django-проекту в PYTHONPATH и указать путь в переменную окружения 'DJANGO_SETTINGS_MODULE'. Далее по файлу работаете с Django-проектом как обычно.
Для примера кусочек из своего:

#!/usr/bin/python  
# -*- coding: UTF-8 -*-

import os  
import sys

sys.path.append('/var/www/myproject/')   
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

from django.contrib.auth.models import User  
from myproject.myapp.models import SomeModel

def do_smth():  
    return SomeModels.objects.filter(smth=1)

if __name__ == "__main__":  
    do_smth()

Ну и добавляем этот файл в крон.
Все.