2011-01-26 6 views
6

Я рассматриваю использование сельдерея в своем проекте. Я нашел много информации о том, как его использовать и т. Д. Мне интересно, как развернуть/упаковать мое решение.Сельдерей с Django - развертывание

Мне нужно запустить два компонента - приложение django, а затем работник celeryd (компонент, который отправляет электронные письма). Например, я хотел бы, чтобы мое приложение django использовало задачу email_ticket, которая могла бы отправлять электронные письма. Я создаю tasks.py в приложении django.

@task 
def email_ticket(from, message): 
... 

Разверните ли я свое приложение django, а затем просто запустите celeryd как отдельный процесс с того же пути?

./manage.py celeryd ... 

Что относительно рабочих на разных серверах? Разверните все приложение django и запустите только celeryd? Я понимаю, что я мог бы использовать сельдерей только для рабочего, но я бы хотел использовать сельдерей и сельдерей.

Любая обратная связь приветствуется. Спасибо

Благодарим за любую отзыв.

+0

Хороший вопрос. Принятый ответ («развернуть все»), безусловно, прост и прочен, но не оптимален. Может быть, кто-то может подумать о хорошем способе распространения только необходимого кода на «рабочие» машины, не слишком усложняя весь процесс. –

ответ

3

Это описано в документации here. Суть в том, что вам нужно загрузить некоторые сценарии инициализации и установить некоторую конфигурацию. Как только это будет сделано celeryd начнется при загрузке, и вы будете выключены и запущены.

+0

Я знаю об этой ссылке. Меня больше интересует структура проекта. Как мне создать приложение Django и рабочий код? Должен ли я создать другой дистрибутив, содержащий только приложения django? Например, мне не нужны шаблоны и носители для рабочего дистрибутива. Мне нужны модели. – Tomas

+1

Я думаю, это зависит от того, где вы его развертываете. Для тех вещей, над которыми я работаю, все развертывается на одном веб-сайте, поэтому я просто ставил задачи в приложении (мой проект разбит на мелкомасштабные приложения). Затем я просто разворачиваю все это на рабочие узлы. Это просто, и я не беспокоюсь о том, чтобы что-то сломать, потому что забыл включить его в дистрибутив рабочего-узла. –

+0

Я думаю, это способ сделать это. Я просто переделаю приложение Django для каждого рабочего узла, а затем заведующего. Спасибо, я ценю ваш вклад. – Tomas

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