Version: | 5.5.0rc3 (immunité) |
---|---|
Internet : | https://docs.celeryq.dev/en/stable/index.html |
Télécharger: | https://pypi.org/project/celery/ |
Source: | https://github.com/celery/celery/ |
Mots-clés : | tâche, file d'attente, travail, asynchrone, lapinmq, amqp, redis, python, distribué, acteurs |
Ce projet dépend de vos généreux dons.
Si vous utilisez le céleri pour créer un produit commercial, envisagez de devenir notre bailleur de fonds ou notre sponsor pour assurer l'avenir du céleri.
Disponible dans le cadre de l’abonnement Tidelift.
Les responsables de celery
et de milliers d'autres packages travaillent avec Tidelift pour fournir un support commercial et une maintenance pour les dépendances open source que vous utilisez pour créer vos applications. Gagnez du temps, réduisez les risques et améliorez la santé du code, tout en rémunérant les responsables des dépendances exactes que vous utilisez. Apprendre encore plus.
Dragonfly est un remplacement immédiat de Redis qui réduit les coûts et améliore les performances. Conçu pour utiliser pleinement la puissance du matériel cloud moderne et répondre aux demandes de données des applications modernes, Dragonfly libère les développeurs des limites des magasins de données en mémoire traditionnels.
Les files d'attente de tâches sont utilisées comme mécanisme pour répartir le travail entre les threads ou les machines.
L'entrée d'une file d'attente de tâches est une unité de travail, appelée tâche, des processus de travail dédiés surveillent ensuite en permanence la file d'attente pour détecter de nouveaux travaux à effectuer.
Le céleri communique via des messages, en utilisant généralement un courtier pour servir d'intermédiaire entre les clients et les travailleurs. Pour lancer une tâche, un client met un message dans la file d'attente, le courtier transmet ensuite le message à un travailleur.
Un système Celery peut être composé de plusieurs travailleurs et courtiers, ce qui permet une haute disponibilité et une mise à l'échelle horizontale.
Celery est écrit en Python, mais le protocole peut être implémenté dans n'importe quel langage. En plus de Python, il existe node-celery pour Node.js, un client PHP, gocelery, gopher-celery pour Go et rusty-celery pour Rust.
L'interopérabilité linguistique peut également être obtenue en utilisant des webhooks de telle sorte que le client mette en file d'attente une URL demandée par un travailleur.
La version 5.5.x de Celery fonctionne sur :
Il s'agit de la version de céleri qui prendra en charge Python 3.8 ou plus récent.
Si vous utilisez une ancienne version de Python, vous devez exécuter une ancienne version de Celery :
Celery est un projet avec un financement minimal, nous ne prenons donc pas en charge Microsoft Windows mais il devrait fonctionner. Veuillez ne pas ouvrir de problèmes liés à cette plate-forme.
Le céleri est généralement utilisé avec un courtier de messages pour envoyer et recevoir des messages. Les transports RabbitMQ et Redis sont dotés de fonctionnalités complètes, mais il existe également un support expérimental pour une myriade d'autres solutions, notamment l'utilisation de SQLite pour le développement local.
Celery peut fonctionner sur une seule machine, sur plusieurs machines ou même sur plusieurs centres de données.
Si c'est la première fois que vous essayez d'utiliser Celery, ou si vous êtes nouveau sur Celery v5.5.x provenant de versions précédentes, vous devriez lire nos didacticiels de démarrage :
Premiers pas avec le céleri
Tutoriel vous enseignant le strict minimum nécessaire pour démarrer avec le céleri.
Prochaines étapes
Un aperçu plus complet, montrant plus de fonctionnalités.
Vous pouvez également démarrer avec Celery en utilisant un courtier de transport hébergé CloudAMQP. Le plus grand fournisseur d'hébergement de RabbitMQ est un fier sponsor de Celery.
Simple
Le céleri est facile à utiliser et à entretenir et ne nécessite pas de fichiers de configuration .
Il dispose d'une communauté active et conviviale à laquelle vous pouvez demander de l'aide, comme sur notre liste de diffusion ou sur le canal IRC.
Voici l'une des applications les plus simples que vous puissiez réaliser :
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
Hautement disponible
Les travailleurs et les clients réessayeront automatiquement en cas de perte ou d'échec de la connexion, et certains courtiers prennent en charge la haute disponibilité sous forme de réplication principale/primaire ou principale/réplique .
Rapide
Un seul processus Celery peut traiter des millions de tâches par minute, avec une latence aller-retour inférieure à la milliseconde (en utilisant RabbitMQ, py-librabbitmq et des paramètres optimisés).
Flexible
Presque toutes les parties de Celery peuvent être étendues ou utilisées seules : implémentations de pools personnalisés, sérialiseurs, schémas de compression, journalisation, planificateurs, consommateurs, producteurs, transports de courtiers et bien plus encore.
Transports de messages
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
Concurrence
- Prefork, Eventlet, gevent, monothread (
solo
)Magasins de résultats
- AMQP, Redis
- memcaché
- SQLAlchimie, Django ORM
- Apache Cassandra, IronCache, Elasticsearch
- Stockage Google Cloud
Sérialisation
- cornichon , json , yaml , msgpack .
- zlib , compression bzip2 .
- Signature de messages cryptographiques.
Celery est facile à intégrer aux frameworks Web, dont certains disposent même de packages d'intégration :
Django pas nécessaire Pyramide pyramide_céleri Pylônes pylônes de céleri Ballon pas nécessaire web2py web2py-céleri Tornade tornade-céleri API rapide pas nécessaire
Les packages d'intégration ne sont pas strictement nécessaires, mais ils peuvent faciliter le développement et ajoutent parfois des points d'ancrage importants comme la fermeture des connexions à la base de données à fork
.
La dernière documentation est hébergée sur Read The Docs, contenant des guides d'utilisation, des didacticiels et une référence API.
Vous pouvez installer Celery soit via le Python Package Index (PyPI), soit à partir des sources.
Pour installer en utilisant pip
:
$ pip install -U Céleri
Celery définit également un groupe de bundles qui peuvent être utilisés pour installer Celery et les dépendances pour une fonctionnalité donnée.
Vous pouvez les spécifier dans vos exigences ou sur la ligne de commande pip
en utilisant des crochets. Plusieurs bundles peuvent être spécifiés en les séparant par des virgules.
$ pip install "céleri[redis]" $ pip install "céleri[redis,auth,msgpack]"
Les forfaits suivants sont disponibles :
celery[auth] : | pour utiliser le sérialiseur de sécurité auth . |
---|---|
celery[msgpack] : | pour utiliser le sérialiseur msgpack. |
celery[yaml] : | pour utiliser le sérialiseur yaml. |
celery[eventlet] : | pour utiliser le pool eventlet . |
---|---|
celery[gevent] : | pour utiliser le pool gevent . |
celery[amqp] : | pour utiliser la bibliothèque python RabbitMQ amqp. |
---|---|
celery[redis] : | pour utiliser Redis comme transport de messages ou comme backend. |
celery[sqs] : | pour utiliser Amazon SQS comme transport de messages. |
celery[tblib ]: | pour utiliser la fonctionnalité |
celery[memcache] : | pour utiliser Memcached comme backend de résultat (en utilisant |
celery[pymemcache] : | pour utiliser Memcached comme backend de résultats (implémentation purement Python). |
celery[cassandra] : | pour utiliser Apache Cassandra/Astra DB comme backend avec le pilote DataStax. |
celery[azureblockblob] : | pour utiliser Azure Storage comme résultat backend (en utilisant |
celery[s3] : | pour utiliser le stockage S3 en tant que backend. |
celery[gcs] : | pour utiliser Google Cloud Storage comme backend de résultat. |
celery[couchbase] : | pour avoir utilisé Couchbase comme backend. |
celery[arangodb] : | pour utiliser ArangoDB comme backend de résultats. |
celery[elasticsearch] : | pour utiliser Elasticsearch comme backend de résultats. |
celery[riak] : | pour avoir utilisé Riak comme backend. |
celery[cosmosdbsql] : | pour utiliser Azure Cosmos DB comme backend de résultat (en utilisant |
celery[zookeeper] : | pour utiliser Zookeeper comme transport de messages. |
celery[sqlalchemy] : | pour utiliser SQLAlchemy comme backend de résultat ( pris en charge ). |
celery[pyro] : | pour l'utilisation du transport de messages Pyro4 ( expérimental ). |
celery[slmq] : | pour l'utilisation du transport SoftLayer Message Queue ( expérimental ). |
celery[consul] : | pour utiliser le magasin de clés/valeurs Consul.io comme transport de messages ou backend de résultats ( expérimental ). |
celery[django] : | spécifie la version la plus basse possible pour le support de Django. Vous ne devriez probablement pas l'utiliser dans vos besoins, il est ici à titre informatif uniquement. |
celery[gcpubsub] : | pour utiliser Google Pub/Sub comme moyen de transport de messages. |
Téléchargez la dernière version de Celery depuis PyPI :
https://pypi.org/project/celery/
Vous pouvez l'installer en procédant comme suit :
$ tar xvfz céleri-0.0.0.tar.gz $ cd céleri-0.0.0 $ build python setup.py # installation de setup.py python
La dernière commande doit être exécutée en tant qu'utilisateur privilégié si vous n'utilisez pas actuellement de virtualenv.
La version de développement de Celery nécessite également les versions de développement de kombu
, amqp
, billiard
et vine
.
Vous pouvez installer le dernier instantané de ceux-ci à l'aide des commandes pip suivantes :
$ pip installer https://github.com/celery/celery/zipball/main#egg=celery $ pip installer https://github.com/celery/billiard/zipball/main#egg=billiard $ pip installer https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip installer https://github.com/celery/kombu/zipball/main#egg=kombu $ pip installer https://github.com/celery/vine/zipball/main#egg=vine
Veuillez consulter la section Contribuer.
Pour des discussions sur l'utilisation, le développement et l'avenir du céleri, veuillez rejoindre la liste de diffusion des utilisateurs de céleri.
Venez discuter avec nous sur IRC. La chaîne #celery est située sur le réseau Libera Chat.
Si vous avez des suggestions, des rapports de bugs ou des désagréments, veuillez les signaler à notre outil de suivi des problèmes à l'adresse https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
Ce projet existe grâce à toutes les personnes qui y contribuent. Le développement du céleri se fait sur GitHub : https://github.com/celery/celery
Vous êtes fortement encouragé à participer au développement du céleri. Si vous n'aimez pas GitHub (pour une raison quelconque), vous pouvez envoyer des correctifs réguliers.
Assurez-vous également de lire la section Contribuer au céleri dans la documentation.
Merci à tous nos contributeurs ! [Devenez contributeur]
Soutenez ce projet en devenant sponsor. Votre logo apparaîtra ici avec un lien vers votre site Web. [Devenez parrain]
Ce logiciel est sous licence New BSD. Consultez le fichier LICENSE
dans le répertoire de distribution principal pour le texte complet de la licence.