Версия: | 5.5.0rc3 (иммунитет) |
---|---|
Интернет: | https://docs.celeryq.dev/en/stable/index.html |
Скачать: | https://pypi.org/project/celery/ |
Источник: | https://github.com/celery/celery/ |
Ключевые слова: | задача, очередь, задание, асинхронный, RabbitMQ, amqp, Redis, Python, распределенный, актеры |
Этот проект опирается на ваши щедрые пожертвования.
Если вы используете Celery для создания коммерческого продукта, рассмотрите возможность стать нашим покровителем или спонсором, чтобы обеспечить будущее Celery.
Доступно как часть подписки Tidelift.
Разработчики celery
и тысяч других пакетов работают с Tidelift, чтобы обеспечить коммерческую поддержку и обслуживание зависимостей с открытым исходным кодом, которые вы используете для создания своих приложений. Экономьте время, снижайте риски и улучшайте работоспособность кода, платя при этом специалистам по сопровождению именно тех зависимостей, которые вы используете. Узнать больше.
Dragonfly — это замена Redis, которая сокращает затраты и повышает производительность. Разработанный для полного использования возможностей современного облачного оборудования и удовлетворения потребностей современных приложений в данных, Dragonfly освобождает разработчиков от ограничений традиционных хранилищ данных в памяти.
Очереди задач используются как механизм распределения работы между потоками или компьютерами.
Входные данные очереди задач — это единица работы, называемая задачей, выделенные рабочие процессы постоянно отслеживают очередь на предмет выполнения новой работы.
Celery общается посредством сообщений, обычно используя брокера в качестве посредника между клиентами и работниками. Чтобы инициировать задачу, клиент помещает сообщение в очередь, затем брокер доставляет сообщение работнику.
Система Celery может состоять из нескольких воркеров и брокеров, что обеспечивает высокую доступность и горизонтальное масштабирование.
Celery написан на Python, но протокол можно реализовать на любом языке. В дополнение к Python есть node-celery для Node.js, PHP-клиент, gocelery, gopher-celery для Go и Rusty-celery для Rust.
Совместимость языков также может быть достигнута за счет использования веб-перехватчиков таким образом, что клиент ставит в очередь URL-адрес, который будет запрошен работником.
Версия Celery 5.5.x работает на:
Это версия сельдерея, которая поддерживает Python 3.8 или новее.
Если вы используете более старую версию Python, вам необходимо использовать более старую версию Celery:
Celery — это проект с минимальным финансированием, поэтому мы не поддерживаем Microsoft Windows, но он должен работать. Пожалуйста, не открывайте никаких вопросов, связанных с этой платформой.
Сельдерей обычно используется с брокером сообщений для отправки и получения сообщений. Транспорты RabbitMQ и Redis являются полнофункциональными, но имеется также экспериментальная поддержка множества других решений, включая использование SQLite для локальной разработки.
Celery может работать на одной машине, на нескольких машинах или даже в центрах обработки данных.
Если вы впервые пытаетесь использовать Celery или вы новичок в Celery v5.5.x из предыдущих версий, вам следует прочитать наши руководства по началу работы:
Первые шаги с сельдереем
Учебник научит вас минимуму, необходимому для начала работы с Celery.
Следующие шаги
Более полный обзор, показывающий больше возможностей.
Вы также можете начать работу с Celery, используя размещенный брокерский транспорт CloudAMQP. Крупнейший хостинг-провайдер RabbitMQ является гордым спонсором Celery.
Простой
Celery прост в использовании и обслуживании и не требует файлов конфигурации .
У него есть активное, дружелюбное сообщество, к которому можно обратиться за поддержкой, например, в нашем списке рассылки или на канале IRC.
Вот одно из самых простых приложений, которые вы можете сделать:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
Высокая доступность
Работники и клиенты автоматически повторяют попытку в случае потери или сбоя соединения, а некоторые брокеры поддерживают HA в режиме репликации «Основной/Основной» или «Основной/Реплика» .
Быстрый
Один процесс Celery может обрабатывать миллионы задач в минуту с задержкой туда и обратно менее миллисекунды (с использованием RabbitMQ, py-librabbitmq и оптимизированных настроек).
Гибкий
Почти каждую часть Celery можно расширять или использовать самостоятельно: реализации пользовательских пулов, сериализаторы, схемы сжатия, ведение журналов, планировщики, потребители, производители, брокерские транспорты и многое другое.
Транспорт сообщений
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
Параллелизм
- Prefork, Eventlet, gevent, однопоточный (
solo
)Хранилища результатов
- AMQP, Редис
- кэширование памяти
- SQLAlchemy, Django ORM
- Apache Кассандра, IronCache, Elasticsearch
- Облачное хранилище Google
Сериализация
- рассол , json , yaml , msgpack .
- zlib , сжатие bzip2 .
- Подписание криптографического сообщения.
Celery легко интегрируется с веб-фреймворками, некоторые из которых даже имеют пакеты интеграции:
Джанго не нужен Пирамида пирамида_сельдерей Пилоны сельдерейные пилоны Колба не нужен веб2py web2py-сельдерей Торнадо торнадо-сельдерей ФастAPI не нужен
Пакеты интеграции не являются строго необходимыми, но они могут упростить разработку, а иногда добавляют важные приемы, такие как закрытие соединений с базой данных в fork
.
Последняя версия документации размещена на сайте Read The Docs и содержит руководства пользователя, учебные пособия и справочник по API.
Вы можете установить Celery либо через индекс пакетов Python (PyPI), либо из исходного кода.
Для установки с помощью pip
:
$ pip install -U Сельдерей
Celery также определяет группу пакетов, которые можно использовать для установки Celery и зависимостей для данной функции.
Вы можете указать их в своих требованиях или в командной строке pip
используя скобки. Можно указать несколько пакетов, разделив их запятыми.
$ pip install "сельдерей[redis]" $ pip install "сельдерей[redis,auth,msgpack]"
Доступны следующие пакеты:
celery[auth] : | для использования сериализатора безопасности auth . |
---|---|
celery[msgpack] : | для использования сериализатора msgpack. |
celery[yaml] : | для использования сериализатора yaml. |
celery[eventlet] : | для использования пула eventlet . |
---|---|
celery[gevent] : | для использования пула gevent . |
celery[amqp] : | для использования библиотеки Python RabbitMQ amqp. |
---|---|
celery[redis] : | для использования Redis в качестве транспорта сообщений или в качестве бэкэнда. |
celery[sqs] : | для использования Amazon SQS в качестве транспорта сообщений. |
celery[tblib ]: | для использования функции |
celery[memcache] : | для использования Memcached в качестве бэкэнда результатов (с использованием |
celery[pymemcache] : | для использования Memcached в качестве бэкэнда результатов (реализация на чистом Python). |
celery[cassandra] : | для использования Apache Cassandra/Astra DB в качестве серверной части с драйвером DataStax. |
celery[azureblockblob] : | для использования хранилища Azure в качестве серверной части результатов (с использованием |
celery[s3] : | за использование S3 Storage в качестве бэкэнда. |
celery[gcs] : | за использование Google Cloud Storage в качестве серверной части. |
celery[couchbase] : | за использование Couchbase в качестве бэкэнда результатов. |
celery[arangodb] : | для использования ArangoDB в качестве бэкэнда результатов. |
celery[elasticsearch] : | для использования Elasticsearch в качестве серверной части результатов. |
celery[riak] : | за использование Riak в качестве бэкэнда результатов. |
celery[cosmosdbsql] : | для использования Azure Cosmos DB в качестве серверной части результатов (с использованием |
celery[zookeeper] : | для использования Zookeeper в качестве транспорта сообщений. |
celery[sqlalchemy] : | для использования SQLAlchemy в качестве серверной части результата ( поддерживается ). |
celery[pyro] : | для использования транспорта сообщений Pyro4 ( экспериментальный ). |
celery[slmq] : | для использования транспорта SoftLayer Message Queue ( экспериментальный ). |
celery[consul] : | для использования хранилища ключей/значений Consul.io в качестве транспорта сообщений или бэкэнда результатов ( экспериментально ). |
celery[django] : | указывает наименьшую возможную версию для поддержки Django. Вероятно, вам не следует использовать это в своих требованиях, оно здесь только в информационных целях. |
celery[gcpubsub] : | за использование Google Pub/Sub в качестве транспорта сообщений. |
Загрузите последнюю версию Celery с PyPI:
https://pypi.org/project/celery/
Вы можете установить его, выполнив следующие действия:
$ tar xvfz сельдерей-0.0.0.tar.gz $ cd сельдерей-0.0.0 $ python setup.py построить # установка python setup.py
Последняя команда должна быть выполнена от имени привилегированного пользователя, если вы в данный момент не используете virtualenv.
Версия для разработки Celery также требует разработки версий kombu
, amqp
, billiard
и vine
.
Вы можете установить их последний снимок, используя следующие команды pip:
$ pip install https://github.com/celery/celery/zipball/main#egg=celery $ pip install https://github.com/celery/billiard/zipball/main#egg=billiard $ pip install https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip install https://github.com/celery/kombu/zipball/main#egg=kombu $ pip install https://github.com/celery/vine/zipball/main#egg=vine
Пожалуйста, смотрите раздел «Вклад».
Для обсуждения использования, развития и будущего Celery присоединяйтесь к списку рассылки для пользователей celery.
Приходите пообщаться с нами в IRC. Канал #сельдерей находится в сети Libera Chat.
Если у вас есть какие-либо предложения, сообщения об ошибках или неприятности, сообщите о них в нашу систему отслеживания проблем по адресу https://github.com/celery/celery/issues/.
https://github.com/celery/celery/wiki
Этот проект существует благодаря всем людям, которые вносят свой вклад. Разработка сельдерея происходит на GitHub: https://github.com/celery/celery.
Мы настоятельно рекомендуем вам принять участие в развитии сельдерея. Если вам не нравится GitHub (по какой-то причине), вы можете присылать ему регулярные патчи.
Обязательно прочтите раздел «Вклад в Celery» в документации.
Спасибо всем нашим сторонникам! [Стать спонсором]
Поддержите этот проект, став спонсором. Здесь появится ваш логотип со ссылкой на ваш сайт. [Стать спонсором]
Это программное обеспечение распространяется по новой лицензии BSD. Полный текст лицензии см. в файле LICENSE
в верхнем каталоге распространения.