Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie einen einfachen Scheduler in Django

So erstellen Sie einen einfachen Scheduler in Django

DDD
DDDOriginal
2024-10-20 16:16:02589Durchsuche

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!")

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

Für etwas Komplexeres empfehle ich natürlich die Verwendung von rq-scheduler oder Sellery Periodic Tasks oder Django-q.

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

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen einfachen Scheduler in Django. 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