So integrieren Sie Celery und Redis in Django, um die asynchrone Aufgabenverarbeitung zu implementieren
Einführung:
In Webanwendungen gibt es viele zeitaufwändige Aufgaben, wie das Versenden von E-Mails, das Verarbeiten von Bildern, das Erstellen von Berichten usw. Wenn diese Aufgaben synchron verarbeitet werden, beeinträchtigt dies die Benutzererfahrung erheblich. Daher muss ein asynchrones Aufgabenverarbeitungssystem verwendet werden.
Django ist ein beliebtes Python-Webframework und Celery ist ein verteiltes Open-Source-Aufgabenwarteschlangensystem, das asynchrone Aufgabenverarbeitungslösungen bietet. Um die asynchrone Aufgabenverarbeitung zu implementieren, müssen wir auch Redis als Nachrichtenbroker von Celery verwenden.
In diesem Artikel erfahren Sie, wie Sie Celery und Redis in Django integrieren, um eine asynchrone Aufgabenverarbeitung zu erreichen. Das Folgende wird zur Erläuterung in vier Teile unterteilt: Installation und Konfiguration, Aufgaben erstellen, Aufgaben aufrufen und Aufgaben überwachen.
1. Installationskonfiguration
Installieren Sie Celery und Redis.
Verwenden Sie den Befehl pip, um Celery und Redis zu installieren:
pip install celery redis
Konfigurieren Sie die Django-Einstellungen
# Celery配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
from celery import Celery import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') app = Celery('project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks()
celery -A project worker --loglevel=info
2. Aufgaben erstellen
from celery import shared_task @shared_task def add(x, y): return x + y
from app.tasks import add result = add.delay(1, 2)
4. Aufgaben überwachen
Um die Ausführung von Aufgaben in Django zu überwachen, können Sie das von Celery bereitgestellte Flower-Tool verwenden. Es kann installiert und konfiguriert werden, indem Sie die folgenden Schritte ausführen:pip install flower
celery flower --broker=redis://localhost:6379/0
Das obige ist der detaillierte Inhalt vonSo integrieren Sie Celery und Redis in Django, um eine asynchrone Aufgabenverarbeitung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!