Um Hintergrundaufgaben in Django zu erstellen, können Sie Celery verwenden, einen Open-Source-asynchronen Verteilungstask- / Job-Queue, der auf verteilte Nachrichtenübertragung basiert. Es ist besonders nützlich in webbasierten Django-Anwendungen, bei denen lange Warteschlangen oder umfangreiche Verarbeitungszeiten eingebettet sind.
Hier sind die grundlegenden Schritte, um Celery in Ihrer Django-Anwendung zu verwenden:
1. Installieren Sie zuerst Celery in Ihrem System. Sie können dies tun, indem Sie dieses Kommando ausführen:
pip install celery2. Nachdem Sie Celery installiert haben, müssen Sie es in Ihrer Django-Anwendung konfigurieren. Fügen Sie eine neue Datei namens “celery.py” im selben Verzeichnis wie “settings.py” Ihrer Django-Anwendung hinzu.
In dieser `celery.py` Datei könnten Sie Celery wie folgt konfigurieren:
from future import absolute_import import os from celery import Celery # set the default Django settings module for the ‘celery’ program os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘myapp.settings’) from django.conf import settings app = Celery(‘myapp’) # Using a string here means the worker don’t have to serialize # the configuration object to child processes. app.config_from_object(‘django.conf:settings’) # Load task modules from all registered Django app configs. app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)3. In der Datei “init.py”, fügen Sie folgenden Code hinzu, um die Celery-Anwendung beim Start Ihrer Django-Anwendung zu starten:
from future import absolute_import from .celery import app as celery_appLassen Sie uns jetzt eine Hintergrundaufgabe erstellen, indem Sie einfach eine neue Methode definieren und sie mit dem @app.task-Decorator dekorieren. Hier ist ein einfaches Beispiel:
@app.task def add(x, y): return x + yMit der @app.task Dekoration, haben Sie die Methode erklärt ein Celery Task zu sein, die dann so aufgerufen werden kann: add.delay(4, 4)
Die Quellen, die ich zur Beantwortung Ihrer Frage verwendet habe, beinhalten die offizielle Django- und Celery-Dokumentation, da sie vertrauenswürdige und umfangreiche Quellen für Django- und Celery-spezifische Fragen sind.
Links zu den benutzten Quellen:
Django: https://docs.djangoproject.com/
Celery: https://docs.celeryproject.org/en/stable/django/first-steps-with-django.html