„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So erstellen Sie einen einfachen Scheduler in Django

So erstellen Sie einen einfachen Scheduler in Django

Veröffentlicht am 08.11.2024
Durchsuche:687

How to create a simple scheduler in Django

Wenn Sie alle Befehle.

Angenommen, ich möchte alle 5 Sekunden eine Funktion aufrufen, um etwas auf einer externen API zu veröffentlichen.

Erstellen Sie in Ihrer Django-App einen Ordner/ein Paket mit dem Namen „management“. Erstellen Sie in diesem Ordner einen weiteren Ordner mit dem Namen „commands“. Erstellen Sie im Befehlsordner ein Modul mit dem Namen runposter.py. Am Ende haben Sie so etwas wie diese Struktur: yourapp/management/commands/runposter.py.

In diesem Code verwenden wir einen Thread, der eine While-Schleife ausführt, solange er nicht alle 5 Sekunden gestoppt wird. Ersetzen Sie print("posting") durch die Funktion/Logik, die Sie ausführen möchten.

# runposter.py
import time
from threading import Thread, Event
from django.conf import settings
from django.core.management.base import BaseCommand


stop_event = Event()


def my_job():
    while not stop_event.is_set():
        try:
            print("posting")
            time.sleep(5)
        except KeyboardInterrupt:
            break


class Command(BaseCommand):
    help = "Run Poster."

    def handle(self, *args, **options):

        poster = Thread(target=my_job)

        try:
            print("Starting poster...")
            poster.start()
            while poster.is_alive():
                poster.join(timeout=1)
        except KeyboardInterrupt:
            print("Stopping poster...")
            stop_event.set()
            poster.join()
            print("Poster shut down successfully!")

Schön, jetzt öffnen Sie ein weiteres Terminalfenster und führen Sie python manage.py runposter aus. Wie Sie sehen können, wurde der Befehl runposter aus dem von uns angegebenen Modulnamen erstellt.

Natürlich empfehle ich für etwas Komplexeres die Verwendung von RQ-Scheduler oder Sellery Periodic Tasks oder Django-Q.

Aber für einfache Fälle sollte das ausreichen.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/climentea/how-to-create-a-simple-scheduler-in-django-1o54?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3