


Lernen Sie Python Celery und erledigen Sie problemlos asynchrone Aufgaben
Obwohl moderne Webanwendungen schneller und komfortabler als je zuvor sind, gibt es immer noch viele Situationen, in denen schwere Aufgaben auf andere Teile des Systems verlagert werden müssen, anstatt am Haupt-Thread zu arbeiten.
Beispiele für diese Situationen sind wie folgt:
- Periodische Aufgaben – Jobs, deren Ausführung in bestimmten Intervallen geplant ist. Zum Beispiel tägliche, monatliche Berichtserstellung.
- Tools von Drittanbietern – Anwendungen sollten Antworten schnell an den Benutzer zurückgeben, anstatt darauf zu warten, dass andere Aufgaben zuerst abgeschlossen werden. Versenden Sie beispielsweise E-Mails und Benachrichtigungen und kommunizieren Sie den Update-Fortschritt an interne Tools.
- Jobs mit langer Laufzeit – Jobs, die komplex oder ressourcenintensiv sind und bei denen der Benutzer warten muss, bis der Job abgeschlossen ist. Zum Beispiel. DAG-Workflows, Map-Reduce-basierte Aufgaben, lang laufende Spark-Jobs usw.
Wie geht man also mit diesen Situationen um? Zu diesem Zeitpunkt ist Sellerie praktisch.
Was ist Sellerie?
Celery ist eine Open-Source-Implementierung von Aufgabenwarteschlangen, die häufig mit Python-basierten Web-Frameworks wie Flask und Django kombiniert wird, um Aufgaben außerhalb des typischen Anforderungs-Antwort-Zyklus asynchron auszuführen.
Celery ist also im Wesentlichen eine Aufgabenwarteschlange, die auf verteiltem Messaging basiert. Ausführungseinheiten oder Aufgaben werden mithilfe von Multiprocessing, Gevent oder Eventlets gleichzeitig auf einem oder mehreren Workern ausgeführt. Diese Aufgaben können synchron (d. h. warten, bis sie bereit sind) oder asynchron (d. h. im Hintergrund) ausgeführt werden.
Wie wirkt Sellerie?
Celery ist eine verteilte Aufgabenwarteschlange, die auf dem Producer-Consumer-Modell basiert.
Task Queue ist ein Mechanismus zum Verteilen von Arbeit auf Threads und Maschinen, im Wesentlichen ein Nachrichtenvermittler zwischen Produzenten (Webanwendungen) und Konsumenten (Celery-Worker).
Sellerie interagiert über Nachrichten, wobei Makler als Vermittler zwischen Kunden (Produzenten) und Arbeitern (Konsumenten) fungieren. Um eine Aufgabe zu starten, schiebt der Client eine Nachricht in die Warteschlange und der Broker übermittelt die Nachricht an den Worker.
Das Celery-System kann aus mehreren Arbeitern und Maklern bestehen, was die Möglichkeit einer hohen Verfügbarkeit und horizontalen Erweiterung bietet.
Kurz gesagt ist der Celery-Client der Produzent, der über den Message Broker neue Aufgaben zur Warteschlange hinzufügt. Anschließend erhalten Celery-Mitarbeiter über den Nachrichtenbroker auch neue Aufgaben aus der Warteschlange. Nach der Verarbeitung werden die Ergebnisse im Ergebnis-Backend gespeichert.
Arbeitsbeispiel
Das folgende Beispiel verwendet RedisMQ als Nachrichtenbroker.
Redis einrichten
Führen Sie auf einem Linux/MacOS-System den Redis-Server lokal aus, indem Sie den folgenden Befehl ausführen:
$ wget http://download.redis.io/redis-stable.tar.gz $ tar xvzf redis-stable.tar.gz $ rm redis-stable.tar.gz $ cd redis-stable $ make
Nach dem Einrichten von Redis führen Sie den Redis-Server aus, indem Sie den folgenden Befehl ausführen:
$ redis-server
Der Server läuft weiter der Standardport 6379.
Richten Sie die Anwendung ein
Richten Sie zunächst das Python-Projekt lokal ein.
Celery kann über Standardtools wie pip oder easy_install installiert werden. Installieren Sie Celery und Redis über den folgenden Befehl:
pip install celery redis==4.3.4
Jetzt benötigen Sie eine Celery-Instanz, um die Anwendung auszuführen. Jede von Celery implementierte Aufgabe beginnt mit einer Instanz, wie zum Beispiel das Erstellen und Verwalten von Aufgaben.
Erstellen Sie eine Datei task.py im Projekt:
From celery import Celery broker_url = 'redi://localhost:6379/0' app = Celery('tasks',broker = broker_url) @app.task def add(x, y): return x+y
Hier wird eine einfache Aufgabe add() definiert, die die Summe zweier Zahlen zurückgibt.
Run Celery Worker
Wechseln Sie auf dem Terminal zum Projektspeicherort und führen Sie den Celery Worker mit dem folgenden Befehl aus:
$ celery -A tasks worker - loglevel=info
Für weitere Informationen zur Celery Worker-Befehlszeile können Sie Hilfe verwenden:
$ celery worker - help
Rufen Sie die Aufgabe auf
In Celery verwenden Sie die Methode „delay()“, um die Aufgabe aufzurufen.
Öffnen Sie ein weiteres Terminalfenster für Ihr Projekt und führen Sie den folgenden Befehl aus:
$ python
Dadurch wird die Python-Befehlszeile geöffnet.
>> from tasks import add >> add.delay(1,2)
Dadurch wird eine AsyncResult-Instanz zurückgegeben, die verwendet werden kann, um den Status der Aufgabe zu überprüfen, ihren Rückgabewert abzurufen, auf den Abschluss der Aufgabe zu warten und auch Ausnahmen und Tracebacks bei Fehlern abzurufen.
Nachdem der Befehl add.delay() ausgeführt wurde, wird die Aufgabe in die Warteschlange verschoben und dann vom Worker übernommen. Dies kann am Celery-Worker-Terminal überprüft werden, wo Sie deutlich sehen können, dass die Aufgabe empfangen und später erfolgreich abgeschlossen wird.
Das obige ist der detaillierte Inhalt vonLernen Sie Python Celery und erledigen Sie problemlos asynchrone Aufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.
