Данное сообщение является одним из многих, которые будут написаны в процессе изучения Celery.
Celery — «distributed task queue». Это распределенная асинхронная очередь заданий, которая обладает широким функционалом.
- Выполнять задания асинхронно или синхронно
- Выполнять периодические задания(умная замена crond)
- Выполнять отложенные задания
- Распределенное выполнение (может быть запущен на N серверах)
- В пределах одного worker'а возможно конкурентное выполнение нескольких задач(одновременно)
- Выполнять задание повторно, если вылез exception
- Ограничивать количество заданий в единицу времени(rate limit, для задания или глобально)
- Routing заданий(какому worker'у что делать)
- Несложно мониторить выполнение заданий
- Выполнять подзадания
- Присылать отчеты об exception'ах на email
- Проверять выполнилось ли задание(удобно для построения Ajax приложений, где юзер ждет факта завершения)
Для использования нужно
>>> from celery import Celery
>>> celery = Celery()
>>> celery
В последней строке показано имя класса Celery, имя текущего основного модуля (__main__) и адреса памяти объекта (0x100469fd0).
Всякий раз при добавлении задания, задание добавляется в локальный реестр.
Варианты использования:
- если задача оформлена как модуль, то запускается как программа,
Автор: D1VER
Дата публикации: 2013-08-29T01:18:00.000-07:00