So erstellen Sie einen einfachen Scheduler in Django

DDD
Freigeben: 2024-10-20 16:16:02
Original
682 Leute haben es durchsucht

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

Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage