Versão: | 5.5.0rc3 (imunidade) |
---|---|
Rede: | https://docs.celeryq.dev/en/stable/index.html |
Download: | https://pypi.org/project/celery/ |
Fonte: | https://github.com/celery/celery/ |
Palavras-chave: | tarefa, fila, trabalho, assíncrono, coelhomq, amqp, redis, python, distribuído, atores |
Este projeto depende de suas generosas doações.
Se você estiver usando o Celery para criar um produto comercial, considere se tornar nosso patrocinador ou patrocinador para garantir o futuro do Celery.
Disponível como parte da assinatura Tidelift.
Os mantenedores do celery
e de milhares de outros pacotes estão trabalhando com o Tidelift para fornecer suporte comercial e manutenção para as dependências de código aberto que você usa para construir seus aplicativos. Economize tempo, reduza riscos e melhore a integridade do código, pagando aos mantenedores pelas dependências exatas que você usa. Saber mais.
Dragonfly é um substituto imediato do Redis que reduz custos e aumenta o desempenho. Projetado para utilizar totalmente o poder do hardware moderno em nuvem e atender às demandas de dados dos aplicativos modernos, o Dragonfly liberta os desenvolvedores dos limites dos tradicionais armazenamentos de dados na memória.
As filas de tarefas são usadas como um mecanismo para distribuir trabalho entre threads ou máquinas.
A entrada de uma fila de tarefas é uma unidade de trabalho, chamada tarefa. Os processos de trabalho dedicados monitoram constantemente a fila em busca de novos trabalhos a serem executados.
O Celery se comunica por meio de mensagens, geralmente usando um corretor para mediar entre clientes e trabalhadores. Para iniciar uma tarefa, um cliente coloca uma mensagem na fila e o corretor então entrega a mensagem a um trabalhador.
Um sistema Celery pode consistir em vários trabalhadores e corretores, dando lugar a alta disponibilidade e escalabilidade horizontal.
O Celery é escrito em Python, mas o protocolo pode ser implementado em qualquer linguagem. Além do Python, há node-celery para Node.js, um cliente PHP, gocelery, gopher-celery para Go e Rusty-celery para Rust.
A interoperabilidade de linguagem também pode ser alcançada usando webhooks de forma que o cliente enfileire uma URL a ser solicitada por um trabalhador.
O Celery versão 5.5.x é executado em:
Esta é a versão do aipo que suportará Python 3.8 ou mais recente.
Se você estiver executando uma versão mais antiga do Python, precisará executar uma versão mais antiga do Celery:
O Celery é um projeto com financiamento mínimo, por isso não oferecemos suporte ao Microsoft Windows, mas deve estar funcionando. Por favor, não abra nenhum problema relacionado a essa plataforma.
O aipo geralmente é usado com um corretor de mensagens para enviar e receber mensagens. Os transportes RabbitMQ e Redis são completos em recursos, mas também há suporte experimental para uma infinidade de outras soluções, incluindo o uso de SQLite para desenvolvimento local.
O Celery pode ser executado em uma única máquina, em várias máquinas ou até mesmo em datacenters.
Se esta é a primeira vez que você está tentando usar o Celery, ou se você é novo no Celery v5.5.x vindo de versões anteriores, você deve ler nossos tutoriais de introdução:
Primeiros passos com aipo
Tutorial ensinando o mínimo necessário para começar a usar o Celery.
Próximas etapas
Uma visão geral mais completa, mostrando mais recursos.
Você também pode começar a usar o Celery usando um transporte de corretor hospedado CloudAMQP. O maior provedor de hospedagem do RabbitMQ é um orgulhoso patrocinador do Celery.
Simples
O Celery é fácil de usar e manter e não precisa de arquivos de configuração .
Possui uma comunidade ativa e amigável com a qual você pode conversar para obter suporte, como em nossa lista de e-mails ou no canal de IRC.
Aqui está uma das aplicações mais simples que você pode fazer:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
Altamente disponível
Trabalhadores e clientes tentarão novamente automaticamente em caso de perda ou falha de conexão, e alguns agentes oferecem suporte à HA na forma de replicação Primária/Primária ou Primária/Réplica .
Rápido
Um único processo do Celery pode processar milhões de tarefas por minuto, com latência de ida e volta inferior a um milissegundo (usando RabbitMQ, py-librabbitmq e configurações otimizadas).
Flexível
Quase todas as partes do Celery podem ser estendidas ou usadas por conta própria. Implementações de pool personalizado, serializadores, esquemas de compactação, registro, agendadores, consumidores, produtores, transportes de corretores e muito mais.
Transportes de mensagens
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
Simultaneidade
- Prefork, Eventlet, gevent, thread único (
solo
)Armazenamentos de resultados
- AMQP, Redis
- memcached
- SQLAlchemy, Django ORM
- Apache Cassandra, IronCache, Elasticsearch
- Armazenamento em nuvem do Google
Serialização
- picles , json , yaml , msgpack .
- zlib , compactação bzip2 .
- Assinatura de mensagem criptográfica.
O Celery é fácil de integrar com frameworks web, alguns dos quais possuem até pacotes de integração:
Django não é necessário Pirâmide pirâmide_celery Pilões postes de aipo Frasco não é necessário web2py web2py-aipo Tornado tornado-aipo API rápida não é necessário
Os pacotes de integração não são estritamente necessários, mas podem facilitar o desenvolvimento e, às vezes, adicionam ganchos importantes, como fechar conexões de banco de dados em fork
.
A documentação mais recente está hospedada em Read The Docs, contendo guias do usuário, tutoriais e uma referência de API.
Você pode instalar o Celery por meio do Python Package Index (PyPI) ou da fonte.
Para instalar usando pip
:
$ pip instalar -U Aipo
O Celery também define um grupo de pacotes que podem ser usados para instalar o Celery e as dependências de um determinado recurso.
Você pode especificá-los em seus requisitos ou na linha de comando pip
usando colchetes. Vários pacotes configuráveis podem ser especificados separando-os por vírgulas.
$ pip install "aipo[redis]" $ pip install "aipo[redis,auth,msgpack]"
Os seguintes pacotes estão disponíveis:
celery[auth] : | para usar o serializador de segurança auth . |
---|---|
celery[msgpack] : | para usar o serializador msgpack. |
celery[yaml] : | para usar o serializador yaml. |
celery[eventlet] : | para usar o pool eventlet . |
---|---|
celery[gevent] : | para usar o pool gevent . |
celery[amqp] : | por usar a biblioteca python RabbitMQ amqp. |
---|---|
celery[redis] : | para usar o Redis como transporte de mensagens ou como back-end de resultados. |
celery[sqs] : | para usar o Amazon SQS como transporte de mensagens. |
celery[tblib ]: | por usar o recurso |
celery[memcache] : | por usar Memcached como back-end de resultado (usando |
celery[pymemcache] : | para usar o Memcached como back-end de resultado (implementação em Python puro). |
celery[cassandra] : | para usar Apache Cassandra/Astra DB como back-end de resultado com o driver DataStax. |
celery[azureblockblob] : | para usar o Azure Storage como back-end de resultado (usando |
celery[s3] : | para usar o S3 Storage como back-end de resultado. |
celery[gcs] : | para usar o Google Cloud Storage como back-end de resultados. |
celery[couchbase] : | por usar o Couchbase como back-end de resultado. |
celery[arangodb] : | para usar ArangoDB como back-end de resultado. |
celery[elasticsearch] : | por usar o Elasticsearch como back-end de resultados. |
celery[riak] : | por usar Riak como back-end de resultado. |
celery[cosmosdbsql] : | para usar o Azure Cosmos DB como back-end de resultado (usando |
celery[zookeeper] : | por usar o Zookeeper como transporte de mensagens. |
celery[sqlalchemy] : | para usar SQLAlchemy como back-end de resultado ( suportado ). |
celery[pyro] : | para usar o transporte de mensagens Pyro4 ( experimental ). |
celery[slmq] : | para usar o transporte SoftLayer Message Queue ( experimental ). |
celery[consul] : | para usar o armazenamento de chave/valor Consul.io como transporte de mensagens ou backend de resultados ( experimental ). |
celery[django] : | especifica a versão mais baixa possível para suporte ao Django. Você provavelmente não deve usar isso em seus requisitos; está aqui apenas para fins informativos. |
celery[gcpubsub] : | para usar o Google Pub/Sub como transporte de mensagens. |
Baixe a versão mais recente do Celery do PyPI:
https://pypi.org/project/celery/
Você pode instalá-lo fazendo o seguinte:
$ tar xvfz aipo-0.0.0.tar.gz $ cd aipo-0.0.0 $ python setup.py compilação # python setup.py instalar
O último comando deve ser executado como um usuário privilegiado se você não estiver usando um virtualenv.
A versão de desenvolvimento do Celery também requer as versões de desenvolvimento de kombu
, amqp
, billiard
e vine
.
Você pode instalar o snapshot mais recente deles usando os seguintes comandos pip:
$ pip instalar https://github.com/celery/celery/zipball/main#egg=celery $ pip instalar https://github.com/celery/billiard/zipball/main#egg=billiard $ pip instalar https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip instalar https://github.com/celery/kombu/zipball/main#egg=kombu $ pip instalar https://github.com/celery/vine/zipball/main#egg=vine
Por favor, consulte a seção Contribuindo.
Para discussões sobre o uso, desenvolvimento e futuro do Celery, junte-se à lista de discussão de usuários do celery.
Venha conversar conosco no IRC. O canal #celery está localizado na rede Libera Chat.
Se você tiver alguma sugestão, relatório de bug ou aborrecimento, relate-o ao nosso rastreador de problemas em https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
Este projeto existe graças a todas as pessoas que contribuem. O desenvolvimento do aipo acontece no GitHub: https://github.com/celery/celery
Você é altamente encorajado a participar do desenvolvimento do aipo. Se você não gosta do GitHub (por algum motivo), você pode enviar patches regulares.
Certifique-se de ler também a seção Contribuindo com o Aipo na documentação.
Obrigado a todos os nossos apoiadores! [Torne-se um apoiador]
Apoie este projeto tornando-se um patrocinador. Seu logotipo aparecerá aqui com um link para seu site. [Torne-se um patrocinador]
Este software está licenciado sob a nova licença BSD. Consulte o arquivo LICENSE
no diretório de distribuição superior para obter o texto completo da licença.