Heim >Backend-Entwicklung >Python-Tutorial >Verwenden Sie Celery Redis Django, um eine hochverfügbare asynchrone Aufgabenverarbeitungsplattform zu erstellen

Verwenden Sie Celery Redis Django, um eine hochverfügbare asynchrone Aufgabenverarbeitungsplattform zu erstellen

王林
王林Original
2023-09-26 12:29:021914Durchsuche

使用Celery Redis Django打造高可用异步任务处理平台

Verwenden Sie Celery Redis Django, um eine hochverfügbare asynchrone Aufgabenverarbeitungsplattform zu erstellen.

Übersicht: Mit der rasanten Entwicklung des Internets und der Komplexität von Anwendungssystemen wird auch die Nachfrage nach asynchroner Aufgabenverarbeitung immer höher. Celery ist ein leistungsstarkes Framework für verteilte Aufgabenwarteschlangen, das eine benutzerfreundliche Möglichkeit zur Bearbeitung asynchroner Aufgaben bietet. Redis ist ein leistungsstarkes In-Memory-Datenspeichersystem, das häufig in Cache-, Warteschlangen- und anderen Szenarien eingesetzt wird. Django ist ein effizientes Webanwendungs-Framework mit umfangreichen Funktionen und guter Skalierbarkeit. In diesem Artikel wird erläutert, wie Sie mit Celery Redis Django eine hochverfügbare asynchrone Aufgabenverarbeitungsplattform erstellen und spezifische Codebeispiele bereitstellen.

Sellerie und Redis installieren und konfigurieren

Zuerst müssen wir Celery und Redis installieren. Verwenden Sie in der virtuellen Python-Umgebung den folgenden Befehl zur Installation:

pip install celery
pip install redis

Nach Abschluss der Installation müssen wir einige zugehörige Konfigurationen durchführen. Fügen Sie zunächst die folgende Konfiguration zur Datei „settings.py“ von Django hinzu:

# Celery配置
CELERY_BROKER_URL = 'redis://localhost:6379/0'  # Redis的地址
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

Als nächstes erstellen Sie eine Datei mit dem Namen celery.py und fügen Celery-bezogene Konfigurationsinformationen zur Datei hinzu:

from celery import Celery
import os

# 设置Django环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_django_project.settings')

# 实例化Celery
app = Celery('your_django_project')

# 加载Django配置
app.config_from_object('django.conf:settings', namespace='CELERY')

# 自动发现异步任务
app.autodiscover_tasks()

Auf diese Weise sind wir mit der Installation und Konfiguration von fertig Sellerie und Redis.

Eine asynchrone Aufgabe erstellen

Als nächstes müssen wir eine asynchrone Aufgabe erstellen. Erstellen Sie in einer Django-Anwendung eine Datei „tasks.py“ und implementieren Sie eine asynchrone Aufgabe:

from celery import shared_task

# 定义异步任务
@shared_task
def process_task(file_path):
    # 任务逻辑代码
    # 处理文件
    with open(file_path, 'r') as file:
        content = file.read()
        # 具体的处理逻辑
        ...

In dieser Aufgabe definieren wir eine Funktion „process_task“, erhalten einen Dateipfad als Parameter und implementieren die spezifische Aufgabenlogik.

Asynchrone Aufgaben aufrufen

Wo wir eine asynchrone Aufgabe aufrufen müssen, müssen wir lediglich die Funktion „process_task“ aufrufen und ihr Parameter übergeben:

from your_django_project.tasks import process_task

...

# 调用异步任务
result = process_task.delay(file_path)

Der obige Code führt die asynchrone Aufgabe aus, indem er die Verzögerungsmethode aufruft und den Dateipfad übergibt als Parameter.

Aufgabenstatus und -ergebnisse überwachen

Als nächstes müssen wir den Status und die Ergebnisse der Aufgabe überwachen und abrufen. In Django können wir eine Ansicht erstellen, um diese Funktion zu implementieren:

from your_django_project.tasks import app

...

# 获取任务状态和结果
def get_task_status(request, task_id):
    task = app.AsyncResult(task_id)
    response_data = {
        "status": task.status,
        "result": task.result
    }
    return JsonResponse(response_data)

Im obigen Code erhalten wir den Status und die Ergebnisse der Aufgabe durch Aufrufen der AsyncResult-Methode, kapseln sie als Antwort im JSON-Format und geben sie an den Anfang zurück Ende.

Celery-Worker starten

Zuletzt müssen wir den Celery-Worker starten, um asynchrone Aufgaben zu erledigen. Führen Sie im Stammverzeichnis den folgenden Befehl aus:

celery -A your_django_project worker --loglevel=info

Auf diese Weise haben wir den gesamten Prozess der Verwendung von Celery Redis Django zum Aufbau einer hochverfügbaren asynchronen Aufgabenverarbeitungsplattform abgeschlossen.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit Celery Redis Django eine hochverfügbare Plattform für die asynchrone Aufgabenverarbeitung erstellen, und es werden spezifische Codebeispiele bereitgestellt. Auf diese Weise können wir verschiedene asynchrone Aufgaben problemlos bewältigen und die Reaktionsgeschwindigkeit und Zuverlässigkeit des Systems verbessern. Ich hoffe, dass dieser Artikel allen beim Aufbau einer asynchronen Aufgabenverarbeitungsplattform helfen kann.

Das obige ist der detaillierte Inhalt vonVerwenden Sie Celery Redis Django, um eine hochverfügbare asynchrone Aufgabenverarbeitungsplattform zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn