Version: | 5.5.0rc3 (Immunität) |
---|---|
Web: | https://docs.celeryq.dev/en/stable/index.html |
Herunterladen: | https://pypi.org/project/celery/ |
Quelle: | https://github.com/celery/celery/ |
Schlüsselwörter: | Aufgabe, Warteschlange, Job, asynchron, Rabbitmq, amqp, Redis, Python, verteilt, Akteure |
Dieses Projekt ist auf Ihre großzügigen Spenden angewiesen.
Wenn Sie Celery zur Herstellung eines kommerziellen Produkts verwenden, denken Sie bitte darüber nach, unser Unterstützer oder Sponsor zu werden, um die Zukunft von Celery zu sichern.
Verfügbar als Teil des Tidelift-Abonnements.
Die Betreuer von celery
und Tausenden anderer Pakete arbeiten mit Tidelift zusammen, um kommerziellen Support und Wartung für die Open-Source-Abhängigkeiten bereitzustellen, die Sie zum Erstellen Ihrer Anwendungen verwenden. Sparen Sie Zeit, reduzieren Sie Risiken und verbessern Sie den Zustand des Codes, während Sie gleichzeitig die Betreuer der genauen Abhängigkeiten bezahlen, die Sie verwenden. Erfahren Sie mehr.
Dragonfly ist ein Drop-in-Redis-Ersatz, der Kosten senkt und die Leistung steigert. Dragonfly wurde entwickelt, um die Leistungsfähigkeit moderner Cloud-Hardware voll auszunutzen und den Datenanforderungen moderner Anwendungen gerecht zu werden. Es befreit Entwickler von den Einschränkungen traditioneller In-Memory-Datenspeicher.
Aufgabenwarteschlangen werden als Mechanismus zur Verteilung der Arbeit auf Threads oder Maschinen verwendet.
Die Eingabe einer Aufgabenwarteschlange ist eine Arbeitseinheit, die als Aufgabe bezeichnet wird. Dedizierte Arbeitsprozesse überwachen die Warteschlange dann ständig auf neue auszuführende Arbeiten.
Celery kommuniziert über Nachrichten und nutzt normalerweise einen Makler, um zwischen Kunden und Mitarbeitern zu vermitteln. Um eine Aufgabe zu initiieren, stellt ein Client eine Nachricht in die Warteschlange, der Broker übermittelt die Nachricht dann an einen Worker.
Ein Celery-System kann aus mehreren Workern und Brokern bestehen, was eine hohe Verfügbarkeit und horizontale Skalierung ermöglicht.
Celery ist in Python geschrieben, das Protokoll kann jedoch in jeder beliebigen Sprache implementiert werden. Zusätzlich zu Python gibt es node-celery für Node.js, einen PHP-Client, gocelery, gopher-celery für Go und rusty-celery für Rust.
Sprachinteroperabilität kann auch durch die Verwendung von Webhooks erreicht werden, sodass der Client eine URL einreiht, die von einem Worker angefordert werden soll.
Celery Version 5.5.x läuft auf:
Dies ist die Sellery-Version, die Python 3.8 oder höher unterstützt.
Wenn Sie eine ältere Version von Python ausführen, müssen Sie eine ältere Version von Celery ausführen:
Celery ist ein Projekt mit minimaler Finanzierung, daher unterstützen wir Microsoft Windows nicht, aber es sollte funktionieren. Bitte öffnen Sie keine Probleme im Zusammenhang mit dieser Plattform.
Sellerie wird normalerweise mit einem Nachrichtenbroker zum Senden und Empfangen von Nachrichten verwendet. Die Transportfunktionen von RabbitMQ und Redis sind vollständig, es gibt aber auch experimentelle Unterstützung für eine Vielzahl anderer Lösungen, einschließlich der Verwendung von SQLite für die lokale Entwicklung.
Celery kann auf einer einzelnen Maschine, auf mehreren Maschinen oder sogar über mehrere Rechenzentren hinweg ausgeführt werden.
Wenn Sie Celery zum ersten Mal verwenden oder Celery v5.5.x noch nicht kennen und von früheren Versionen stammen, sollten Sie unsere Einführungs-Tutorials lesen:
Erste Schritte mit Sellerie
Das Tutorial vermittelt Ihnen das Nötigste, was Sie für den Einstieg in Celery benötigen.
Nächste Schritte
Eine vollständigere Übersicht mit weiteren Funktionen.
Sie können auch mit Celery beginnen, indem Sie einen gehosteten Broker-Transport CloudAMQP verwenden. Der größte Hosting-Anbieter von RabbitMQ ist stolzer Sponsor von Celery.
Einfach
Celery ist einfach zu verwenden und zu warten und benötigt keine Konfigurationsdateien .
Es gibt eine aktive, freundliche Community, mit der Sie um Unterstützung bitten können, beispielsweise über unsere Mailingliste oder den IRC-Kanal.
Hier ist eine der einfachsten Anwendungen, die Sie erstellen können:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
Hochverfügbar
Worker und Clients versuchen es automatisch erneut, wenn die Verbindung verloren geht oder ausfällt, und einige Broker unterstützen HA in Form der Primär/Primär- oder Primär/Replikat -Replikation.
Schnell
Ein einzelner Celery-Prozess kann Millionen von Aufgaben pro Minute verarbeiten, mit einer Roundtrip-Latenz von weniger als einer Millisekunde (mit RabbitMQ, py-librabbitmq und optimierten Einstellungen).
Flexibel
Nahezu jeder Teil von Celery kann erweitert oder eigenständig verwendet werden, benutzerdefinierte Pool-Implementierungen, Serialisierer, Komprimierungsschemata, Protokollierung, Scheduler, Verbraucher, Produzenten, Broker-Transporte und vieles mehr.
Nachrichtentransporte
- RabbitMQ, Redis, Amazon SQS, Google Pub/Sub
Parallelität
- Prefork, Eventlet, Gevent, Single-Threaded (
solo
)Ergebnisspeicher
- AMQP, Redis
- zwischengespeichert
- SQLAlchemy, Django ORM
- Apache Cassandra, IronCache, Elasticsearch
- Google Cloud-Speicher
Serialisierung
- pickle , json , yaml , msgpack .
- zlib , bzip2- Komprimierung.
- Kryptografische Nachrichtensignierung.
Celery lässt sich leicht in Web-Frameworks integrieren, von denen einige sogar über Integrationspakete verfügen:
Django nicht nötig Pyramide Pyramide_Sellerie Pylonen Sellerie-Pylonen Flasche nicht nötig web2py web2py-Sellerie Tornado Tornado-Sellerie FastAPI nicht nötig
Die Integrationspakete sind nicht unbedingt notwendig, können aber die Entwicklung erleichtern und manchmal fügen sie wichtige Hooks hinzu, wie das Schließen von Datenbankverbindungen bei fork
.
Die neueste Dokumentation wird bei Read The Docs gehostet und enthält Benutzerhandbücher, Tutorials und eine API-Referenz.
Sie können Celery entweder über den Python Package Index (PyPI) oder aus der Quelle installieren.
So installieren Sie mit pip
:
$ pip install -U Sellerie
Celery definiert außerdem eine Gruppe von Bundles, die zur Installation von Celery und den Abhängigkeiten für eine bestimmte Funktion verwendet werden können.
Sie können diese in Ihren Anforderungen oder in der pip
-Befehlszeile angeben, indem Sie Klammern verwenden. Mehrere Bundles können durch Kommas getrennt angegeben werden.
$ pip install „celery[redis]“ $ pip install „celery[redis,auth,msgpack]“
Folgende Pakete sind verfügbar:
celery[auth] : | für die Verwendung des auth -Serialisierungsprogramms. |
---|---|
celery[msgpack] : | für die Verwendung des msgpack-Serializers. |
celery[yaml] : | für die Verwendung des Yaml-Serialisierungsprogramms. |
celery[eventlet] : | für die Nutzung des eventlet Pools. |
---|---|
celery[gevent] : | für die Nutzung des gevent Pools. |
celery[amqp] : | für die Verwendung der RabbitMQ-amqp-Python-Bibliothek. |
---|---|
celery[redis] : | für die Verwendung von Redis als Nachrichtentransport oder als Ergebnis-Backend. |
celery[sqs] : | für die Verwendung von Amazon SQS als Nachrichtentransport. |
celery[tblib ]: | für die Verwendung der Funktion |
celery[memcache] : | für die Verwendung von Memcached als Ergebnis-Backend (mit |
celery[pymemcache] : | für die Verwendung von Memcached als Ergebnis-Backend (reine Python-Implementierung). |
celery[cassandra] : | für die Verwendung von Apache Cassandra/Astra DB als Ergebnis-Backend mit dem DataStax-Treiber. |
celery[azureblockblob] : | für die Verwendung von Azure Storage als Ergebnis-Backend (unter Verwendung von |
celery[s3] : | für die Verwendung von S3 Storage als Ergebnis-Backend. |
celery[gcs] : | für die Nutzung von Google Cloud Storage als Ergebnis-Backend. |
celery[couchbase] : | für die Nutzung von Couchbase als Ergebnis-Backend. |
celery[arangodb] : | für die Verwendung von ArangoDB als Ergebnis-Backend. |
celery[elasticsearch] : | für die Verwendung von Elasticsearch als Ergebnis-Backend. |
celery[riak] : | für die Verwendung von Riak als Ergebnis-Backend. |
celery[cosmosdbsql] : | für die Verwendung von Azure Cosmos DB als Ergebnis-Backend (unter Verwendung von |
celery[zookeeper] : | für die Verwendung von Zookeeper als Nachrichtentransport. |
celery[sqlalchemy] : | für die Verwendung von SQLAlchemy als Ergebnis-Backend ( unterstützt ). |
celery[pyro] : | zur Nutzung des Pyro4-Nachrichtentransports ( experimentell ). |
celery[slmq] : | für die Verwendung des SoftLayer Message Queue-Transports ( experimentell ). |
celery[consul] : | für die Verwendung des Consul.io Key/Value Store als Nachrichtentransport- oder Ergebnis-Backend ( experimentell ). |
celery[django] : | Gibt die niedrigstmögliche Version für die Django-Unterstützung an. Sie sollten dies wahrscheinlich nicht in Ihren Anforderungen verwenden, es dient hier nur zu Informationszwecken. |
celery[gcpubsub] : | für die Verwendung von Google Pub/Sub als Nachrichtentransport. |
Laden Sie die neueste Version von Celery von PyPI herunter:
https://pypi.org/project/celery/
Sie können es wie folgt installieren:
$ tar xvfz celery-0.0.0.tar.gz $ cd Sellerie-0.0.0 $ python setup.py erstellen # Python setup.py installieren
Der letzte Befehl muss als privilegierter Benutzer ausgeführt werden, wenn Sie derzeit keine virtuelle Umgebung verwenden.
Die Celery-Entwicklungsversion erfordert außerdem die Entwicklungsversionen von kombu
, amqp
, billiard
und vine
.
Sie können den neuesten Snapshot davon mit den folgenden Pip-Befehlen installieren:
$ pip install https://github.com/celery/celery/zipball/main#egg=celery $ pip installiere 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
Bitte beachten Sie den Abschnitt „Mitwirken“.
Für Diskussionen über die Nutzung, Entwicklung und Zukunft von Celery treten Sie bitte der Mailingliste celery-users bei.
Kommen Sie und chatten Sie mit uns im IRC. Der Kanal #celery befindet sich im Libera Chat-Netzwerk.
Wenn Sie Vorschläge, Fehlerberichte oder Ärgernisse haben, melden Sie diese bitte an unseren Issue-Tracker unter https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
Dieses Projekt existiert dank aller Menschen, die dazu beitragen. Die Entwicklung von Sellerie erfolgt auf GitHub: https://github.com/celery/celery
Wir laden Sie herzlich ein, sich an der Entwicklung von Sellerie zu beteiligen. Wenn Ihnen GitHub (aus irgendeinem Grund) nicht gefällt, können Sie gerne regelmäßige Patches senden.
Lesen Sie unbedingt auch den Abschnitt „Beitrag zu Sellerie“ in der Dokumentation.
Vielen Dank an alle unsere Unterstützer! [Unterstützer werden]
Unterstützen Sie dieses Projekt, indem Sie Sponsor werden. Hier erscheint Ihr Logo mit einem Link zu Ihrer Website. [Sponsor werden]
Diese Software ist unter der New BSD License lizenziert. Den vollständigen Lizenztext finden Sie in der Datei LICENSE
im obersten Distributionsverzeichnis.