버전: | 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.js용 node-celery, PHP 클라이언트, gocelery, Go용 gopher-celery, Rust용 Rusty-celery가 있습니다.
클라이언트가 작업자가 요청할 URL을 대기열에 추가하는 방식으로 웹후크를 사용하여 언어 상호 운용성을 달성할 수도 있습니다.
Celery 버전 5.5.x는 다음에서 실행됩니다.
이것은 Python 3.8 이상을 지원하는 셀러리 버전입니다.
이전 버전의 Python을 실행 중인 경우 이전 버전의 Celery도 실행해야 합니다.
Celery는 자금이 최소화된 프로젝트이므로 Microsoft Windows를 지원하지 않지만 작동할 것입니다. 해당 플랫폼과 관련된 문제를 열지 마십시오.
셀러리 는 일반적으로 메시지 브로커와 함께 메시지를 보내고 받는 데 사용됩니다. RabbitMQ, Redis 전송은 기능이 완벽하지만 로컬 개발을 위한 SQLite 사용을 포함하여 수많은 다른 솔루션에 대한 실험적 지원도 있습니다.
Celery는 단일 시스템, 여러 시스템 또는 데이터 센터 전체에서 실행될 수 있습니다.
Celery를 처음 사용하는 경우이거나 이전 버전에서 나온 Celery v5.5.x를 처음 사용하는 경우 시작하기 튜토리얼을 읽어야 합니다.
셀러리의 첫 번째 단계
Celery를 시작하는 데 필요한 최소한의 정보를 알려주는 튜토리얼입니다.
다음 단계
더 많은 기능을 보여주는 보다 완전한 개요입니다.
호스팅된 브로커 전송 CloudAMQP를 사용하여 Celery를 시작할 수도 있습니다. RabbitMQ의 최대 호스팅 제공업체는 Celery의 자랑스러운 후원자입니다.
단순한
Celery는 사용 및 유지 관리가 쉽고 구성 파일이 필요하지 않습니다 .
메일링 리스트나 IRC 채널과 같이 지원을 위해 대화할 수 있는 활발하고 친근한 커뮤니티가 있습니다.
다음은 만들 수 있는 가장 간단한 애플리케이션 중 하나입니다.
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
고가용성
작업자와 클라이언트는 연결이 끊어지거나 실패할 경우 자동으로 재시도하며 일부 브로커는 기본/기본 또는 기본/복제본 복제 방식으로 HA를 지원합니다.
빠른
단일 Celery 프로세스는 1밀리초 미만의 왕복 대기 시간으로 분당 수백만 개의 작업을 처리할 수 있습니다(RabbitMQ, py-librabbitmq 및 최적화된 설정 사용).
유연한
Celery 의 거의 모든 부분은 사용자 정의 풀 구현, 직렬 변환기, 압축 체계, 로깅, 스케줄러, 소비자, 생산자, 브로커 전송 등 자체적으로 확장되거나 사용될 수 있습니다.
메시지 전송
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
동시성
- Prefork, Eventlet, gevent, 단일 스레드(
solo
)결과 저장소
- AMQP, 레디스
- 멤캐시드
- SQLAlchemy, 장고 ORM
- 아파치 카산드라, IronCache, Elasticsearch
- 구글 클라우드 스토리지
직렬화
- 피클 , json , yaml , msgpack .
- zlib , bzip2 압축.
- 암호화 메시지 서명.
Celery는 웹 프레임워크와 쉽게 통합할 수 있으며, 그 중 일부에는 통합 패키지도 있습니다.
장고 필요하지 않음 피라미드 피라미드_셀러리 철탑 셀러리 파일론 플라스크 필요하지 않음 web2py web2py-셀러리 폭풍 토네이도 셀러리 FastAPI 필요하지 않음
통합 패키지는 꼭 필요한 것은 아니지만 개발을 더 쉽게 만들 수 있으며 때로는 fork
에서 데이터베이스 연결을 닫는 것과 같은 중요한 후크를 추가합니다.
사용자 가이드, 튜토리얼, API 참조가 포함된 최신 문서는 Read The Docs에 호스팅되어 있습니다.
Python Package Index(PyPI)를 통해 또는 소스에서 Celery를 설치할 수 있습니다.
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] : | RabbitMQ amqp Python 라이브러리를 사용하기 위한 것입니다. |
---|---|
celery[redis] : | Redis를 메시지 전송 또는 결과 백엔드로 사용합니다. |
celery[sqs] : | Amazon SQS를 메시지 전송으로 사용합니다. |
celery[tblib ]: | |
celery[memcache] : | 결과 백엔드로 Memcached를 사용하는 경우( |
celery[pymemcache] : | Memcached를 결과 백엔드로 사용하기 위한 것입니다(순수 Python 구현). |
celery[cassandra] : | DataStax 드라이버와 함께 Apache Cassandra/Astra DB를 결과 백엔드로 사용합니다. |
celery[azureblockblob] : | Azure Storage를 결과 백엔드로 사용하기 위해( |
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를 메시지 전송으로 사용합니다. |
PyPI에서 최신 버전의 Celery를 다운로드하세요.
https://pypi.org/project/celery/
다음을 수행하여 설치할 수 있습니다.
$ tar xvfz 셀러리-0.0.0.tar.gz $ cd 셀러리-0.0.0 $ 파이썬 setup.py 빌드 # 파이썬 setup.py 설치
현재 virtualenv를 사용하지 않는 경우 마지막 명령은 권한이 있는 사용자로 실행되어야 합니다.
Celery 개발 버전에는 kombu
, amqp
, billiard
및 vine
개발 버전도 필요합니다.
다음 pip 명령을 사용하여 이들의 최신 스냅샷을 설치할 수 있습니다.
$ pip 설치 https://github.com/celery/celery/zipball/main#egg=celery $ pip 설치 https://github.com/celery/billiard/zipball/main#egg=billiard $ pip 설치 https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip 설치 https://github.com/celery/kombu/zipball/main#egg=kombu $ pip 설치 https://github.com/celery/vine/zipball/main#egg=vine
기여 섹션을 참조하세요.
Celery의 사용법, 개발 및 미래에 대한 토론을 보려면 celery-users 메일링 리스트에 가입하십시오.
IRC에서 우리와 채팅해보세요. #celery 채널은 Libera Chat 네트워크에 있습니다.
제안 사항, 버그 보고서 또는 불편한 사항이 있는 경우 https://github.com/celery/celery/issues/의 문제 추적기에 보고해 주세요.
https://github.com/celery/celery/wiki
이 프로젝트는 기여하는 모든 사람들 덕분에 존재합니다. 셀러리 개발은 GitHub(https://github.com/celery/celery)에서 이루어집니다.
셀러리 개발에 참여해 보시기 바랍니다. 어떤 이유로든 GitHub가 마음에 들지 않으면 정기적인 패치를 보내도 됩니다.
문서의 Contributing to Celery 섹션도 꼭 읽어보세요.
모든 후원자분들께 감사드립니다! [후원자가 되세요]
후원자가 되어 이 프로젝트를 지원하세요. 귀하의 로고가 귀하의 웹사이트 링크와 함께 여기에 표시됩니다. [후원자가 되세요]
이 소프트웨어는 새로운 BSD 라이선스에 따라 라이선스가 부여됩니다. 전체 라이센스 텍스트는 최상위 배포 디렉토리에 있는 LICENSE
파일을 참조하세요.