Django | Celery - распределенная очередь заданий

Dec 22, 2010 09:03


Случайно, в процессе дискуссии обнаружил один проект, реализующий на базе Python/Django решение проблемы распределенной очереди заданий. Для начала несколько ключевых ссылок, которые помогут разобраться в природе вопроса, "буде кому интересна":

1) обзорные статьи:

Celery - распределенная очередь заданий - блог компании Бигго на Хабре
Подробнее о Celery - Блог Романа Ворушина

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

2) полезные ресурсы на сайте проекта Celery:

Главная страница проекта Celery
Документация, описывающая Celery 2.1
Документация, описывающая Celery 2.2 (более новая версия)
Быстрый старт версии 2.2

Архитектура проекта упрощенно описывается следующей картинкой:



Функцию распределения заданий выполняет брокер RabbitMQ. Соответственно, worker - это сервера, которые отрабатывают задачи.

3) ресурсы по djangp-celery

django-celery 2.1.4

Как написано в документации, django-celery обеспечивает интеграцию Celery в проекты Django

django, task queye, python

Previous post Next post
Up