Django & Cron
Программирование 15.04.2009
Интро
В предыдущей статье я описывал как выкладывать Django-проект на сервер и можно сказать попутно выкладывал. =) Но на этом мои “мучения” не закончились - оказалось, что я не знаю как прикрутить вызовы частей приложения по Cron.
Погуглив и почитав, решение нашлось… и оно оказалось намного приятнее решения на php ;)
Решение
В корневой директории проекта, в моем случае publishing, создаем фалик run.py:
# -*- coding: utf-8 -*-
import sys
import settings
from django.core.management import setup_environ
setup_environ(settings)
module_name = sys.argv[1]
exec('import %s' % module_name)
exec('%s.%s' % (module_name, ' '.join(sys.argv[2:])))
Update: Спасибо Александру Кошелеву за ценный комментарий.
И теперь при помощи этого скрипта мы можем вызывать функции наших “вьюшек” из командной строки и из cron:
# python /path/to/project/run.py report.views "send_emails()"
Таким образом у нас выполниться report.views.send_emails()
Все, остается вызвать crontab -e и добавть выше описанную команду.
Как всегда, все просто. =)






