Zeitplan in Python

Fariba Laiq 10 Oktober 2023
  1. Installieren Sie die Zeitplanbibliothek in Python
  2. Verwenden Sie Sekunden als Intervall, um einen Job regelmäßig zu planen
  3. Verwenden Sie Minuten, Stunden und Tage als Intervall, um einen Job regelmäßig zu planen
  4. Verwenden Sie die Zeit im Format HH:MM als Intervall, um einen Job periodisch zu planen
  5. Verwenden Sie den Funktions-Decorator, um einen Job zu planen
Zeitplan in Python

Dieses Tutorial demonstriert das Schedule-Paket in Python, um Jobs regelmäßig nach einem bestimmten Zeitintervall zu planen.

Der Schedule ist eine leichtgewichtige Prozess-Scheduler-Bibliothek in Python, die verwendet wird, um eine Aufgabe so zu planen, dass sie regelmäßig in einem bestimmten Zeitintervall ausgeführt wird.

Wir können eine Funktion oder ein beliebiges aufrufbares Objekt mit einer benutzerfreundlichen Syntax aufrufen, um Aufgaben wie das Senden von E-Mails, das Einrichten einer Erinnerung, das regelmäßige Abrufen des Preises einer Währung oder Bitcoin zu automatisieren.

Installieren Sie die Zeitplanbibliothek in Python

Wir müssen dieses Paket zuerst mit dem folgenden Befehl installieren, um es zu verwenden.

#Python 3.x
pip install schedule

Um einen Job zu planen, verwenden wir die folgende Syntax.

Syntax:

# Python 3.x
Schedule.every(interval).[timeframe].do(function)

Parameter:

  1. Das Intervall kann eine beliebige Ganzzahl sein.
  2. Der Zeitrahmen kann Sekunden, Minuten, Stunden, Tage oder sogar die Namen von Wochentagen wie Montag, Dienstag usw. sein.
  3. Die Methode do() nimmt den Funktionsnamen als Argument für den Zeitplan.

Verwenden Sie Sekunden als Intervall, um einen Job regelmäßig zu planen

Wir haben eine Methode namens task im folgenden Code, die periodisch alle fünf Sekunden ausgeführt wird. Wir definieren das Zeitintervall (in unserem Fall fünf Sekunden) als Argument für die Methode every().

Wir geben die zu planende Funktion als Argument für die Methode do() an, die automatisch ausgeführt wird, sobald die Maschine die angegebene Zeit erreicht. Schließlich führen wir die Funktion run_pending() in der while-Schleife aus, um die geplanten Jobs kontinuierlich auszuführen.

In der Ausgabe wird wie programmiert alle fünf Sekunden die Meldung Aufgabe läuft angezeigt.

Beispielcode:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Ausgang:

#Python 3.x
Task is running
Task is running
Task is running
Task is running
Task is running

Verwenden Sie Minuten, Stunden und Tage als Intervall, um einen Job regelmäßig zu planen

Wenn wir das Intervall auf bestimmte Minuten, Stunden oder Wochentage ändern möchten, können wir den Code so schreiben. Der Ausgang zeigt die Nachricht weiterhin gemäß der eingestellten Zeit an.

Beispielcode:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).minutes.do(task)
s.every(10).hours.do(task)
s.every().monday.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Ausgang:

#Python 3.x
Task is running
Task is running
Task is running

Verwenden Sie die Zeit im Format HH:MM als Intervall, um einen Job periodisch zu planen

Wir können auch eine bestimmte Uhrzeit im Format HH:MM:SS als Argument für eine Funktion angeben. Die Nachricht wird regelmäßig nach jedem angegebenen Intervall angezeigt.

Beispielcode:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every().day.at("04:21").do(task)
s.every().monday.at("12:00").do(task)
while True:
    s.run_pending()
    t.sleep(1)

Ausgang:

#Python 3.x
Task is running

Verwenden Sie den Funktions-Decorator, um einen Job zu planen

Ein Funktions-Decorator akzeptiert eine Funktion als Eingabe, fügt einige Funktionen hinzu und gibt eine Funktion zurück. Wir werden das @repeat verwenden, um die Aufgabenfunktion hier zu planen.

Beispielcode:

# Python 3.x
from schedule import every, run_pending, repeat
import time as t


@repeat(every(5).seconds)
def task():
    print("Task is running")


while True:
    run_pending()
    t.sleep(1)

Ausgang:

#Python 3.x
Task is running
Task is running
Task is running

Führen Sie einen Job sofort aus

Wir können einen Job sofort ausführen, indem wir ihn nach der Ausführung mit CancelJob mit der Zeitplaninstanz abbrechen.

Beispielcode:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")
    return s.CancelJob


s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Ausgang:

#Python 3.x
Task is running

Alle Aufträge stornieren

Wir können alle Jobs aus dem Scheduler mit der Methode clear() mit der Scheduler-Instanz löschen. Hier haben wir die Methode get_jobs() verwendet, um die geplanten Jobs aus dem Scheduler zu drucken.

Beispielcode:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).seconds.do(task)
print("Jobs:", s.get_jobs())
s.clear()
print("Jobs:", s.get_jobs())

Ausgang:

#Python 3.x
Jobs: [Every 5 seconds do task() (last run: [never], next run: 2022-04-08 16:59:37)]
Jobs: []
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn