2012-06-06 2 views
3

Я хотел бы запускать периодические задания в своем проекте django, но я не хочу, чтобы вся сложность сельдерея/django-celery (with celerybeat) была включена в мой проект.Cron-подобный планировщик, что-то между cron и сельдереем

Я хотел бы также сохранить конфигурацию с указанием времени и команды для запуска в моем SCM.

Моя производственная машина работает Ubuntu 10.04.

Пока я мог учиться и использовать cron, я чувствую, что для этого должен быть более высокий уровень (удобный). (Так же, как UFW для iptables).

Есть ли такая вещь? Любые советы/советы?

Спасибо!

+0

Как насчет [sched] (http://docs.python.org/library/sched.html) + многопроцессорности? Или возможно [APScheduler] (http://packages.python.org/APScheduler)? – brandizzi

+1

Что может быть проще, чем использование cron? Вы также можете сохранить свой файл crontab в своей системе управления версиями. –

+0

@brandizzi: Спасибо! APScheduler выглядит фантастически, и это то, что я могу использовать в будущем. На данный момент, я думаю, простая вещь - придерживаться cron. – Tiago

ответ

1

По моему личному мнению, я бы научился использовать cron. Это не займет от 5 до 10 минут, и это важный инструмент при работе на сервере Linux.

Что вы можете сделать, это настроить cronjob, который каждую минуту запрашивает одну страницу вашего экземпляра django, а сценарий django - выяснить, какое время и что нужно сделать, в зависимости от конфигурации, хранящейся в вашей базе данных , Это подход, который я видел в других подобных приложениях.

+0

Я согласен с вашим первым абзацем, но второй кажется ужасно неэффективным. Почему бы не просто заставить cron вызвать определенные команды управления в указанное время? Вы даже можете сгенерировать и установить файл crontab из Django. –

+0

Да, это был мой подход к «простой конфигурации cron», что может быть лучше, если вы не привыкли к cron. Создание crontab из django также было бы моим предпочтительным подходом, но это немного сложнее (разрешения, соображения безопасности при принятии ввода пользователя и т. Д.) – niko

+0

Мне действительно очень нравится это предложение. Я бы вряд ли позвонил с просьбой о едином представлении и ежеквартальной регистрации базы данных неэффективно ... – dgel

2

Существует несколько графических приложений на основе Django, таких как django-chronograph и django-chroniker и django-cron. Я разбил django-хронограф на django-chroniker, чтобы исправить несколько ошибок и расширить его для моего собственного использования. Я по-прежнему использую Celery в некоторых проектах, но, как вы отмечаете, это немного сложнее и имеет большой стек.

+0

Спасибо, Cerin! Посмотрел ваш репо на github, может пойти с ним. – Tiago

Смежные вопросы