CodeGym /Java Kurs /Python SELF DE /Verwendung der Bibliothek schedule zur Planung von Aufgab...

Verwendung der Bibliothek schedule zur Planung von Aufgaben

Python SELF DE
Level 39 , Lektion 4
Verfügbar

1. Einführung in die Bibliothek schedule

In dieser Vorlesung werden wir wie echte Uhrmechanismen lernen, Aufgaben nach Zeitplan zu starten, damit unser Code dann funktioniert, wenn wir es wollen. Macht euch bereit, heute werden wir die Zeit zähmen!

Die Bibliothek schedule ist ein leichtgewichtiger Modul für das Ausführen von Funktionen nach einem bestimmten Zeitplan. Wenn dein Code zu bestimmten Zeiten ausgeführt werden muss, z.B. jeden Tag um 6 Uhr morgens Daten sammeln oder tägliche Erinnerungen senden, dann ist schedule genau das Richtige für dich.

Hier sind die Hauptvorteile von schedule:

  • Einfachheit: Eine intuitive Benutzeroberfläche, die viel einfacher zu verwenden ist als die Standardlösung mit cron oder threading.
  • Minimalismus: Keine überflüssigen Funktionen – nur die, die du wirklich brauchst.
  • Verständlichkeit: Verwendung einer fast natürlichen Sprache zur Festlegung von Zeitplänen.

Installation der Bibliothek

Um loszulegen, musst du die Bibliothek schedule installieren. Wie bei den meisten Python-Bibliotheken verwenden wir pip:

Bash
pip install schedule

Jetzt, da alles bereit ist, tauchen wir in die Welt der Automatisierung ein und sehen, wie schedule deinen Alltag verändern kann.

Hauptmethoden der Bibliothek schedule

Die Bibliothek schedule bietet Methoden zum Einrichten von Aufgaben zu unterschiedlichen Zeiten und mit unterschiedlichen Ausführungsfrequenzen:

  • every().day.at("HH:MM") — Aufgabe wird jeden Tag zu einer bestimmten Zeit ausgeführt.
  • every().hour — Aufgabe wird jede Stunde ausgeführt.
  • every().minute — Aufgabe wird jede Minute ausgeführt.
  • every().week.at("HH:MM") — Aufgabe wird jede Woche zu einer bestimmten Zeit ausgeführt.
  • every().monday.at("HH:MM") — Aufgabe wird jeden Montag zu einer bestimmten Zeit ausgeführt.
  • every(10).seconds — Aufgabe wird alle 10 Sekunden (oder jede beliebige andere Zeitspanne) ausgeführt.

2. Einrichtung wiederkehrender Aufgaben

Beginnen wir mit etwas Einfachem – wir planen eine Funktion, die jede Stunde ausgeführt wird. Wir erstellen eine einfache Funktion, die eine Begrüßungsnachricht ausgibt, und führen sie nach Zeitplan aus.

Beispiel: stündliche Begrüßung

Python

import schedule
import time

def say_hello():
    print("Hallo! Wir arbeiten hier an stündlicher Automatisierung.")

# Funktion say_hello jede Stunde ausführen
schedule.every().hour.do(say_hello)

while True:
    # Führt alle Aufgaben aus, deren Zeit gekommen ist
    schedule.run_pending()
    time.sleep(1)

Das war's schon – dein erstes Skript mit schedule! In diesem Beispiel verwenden wir die Methode every().hour.do(say_hello), um jede Stunde "Hallo!" zu sagen. Cool, oder?

Der Befehl schedule.every().hour.do(say_hello) führt die Funktion say_hello nicht sofort aus, sondern fügt ihren Aufruf in den Zeitplan ein. Der tatsächliche Funktionsaufruf erfolgt, wenn die Zeit gekommen ist – durch den Code schedule.run_pending().

3. Komplexere Intervalle einstellen

Was, wenn wir Aufgaben nicht nur jede Stunde, sondern z.B. auch alle 10 Minuten oder an bestimmten Wochentagen ausführen möchten? schedule unterstützt die meisten gängigen Zeitausdrücke, und du kannst sie genauso leicht verwenden.

Beispiel: Aufgabe alle 10 Minuten ausführen

Python

import schedule
import time

def task():
    print("Diese Aufgabe wird alle 10 Minuten ausgeführt.")

# Aufgabe alle 10 Minuten planen
schedule.every(10).minutes.do(task)

while True:
    schedule.run_pending() # Führt alle Aufgaben aus, deren Zeit gekommen ist
    time.sleep(1)

Beispiel: Aufgabe an bestimmten Tagen ausführen

Und nun versuchen wir, eine Aufgabe zu planen, die an bestimmten Wochentagen ausgeführt wird, z.B. montags und mittwochs, aber nur um 9 Uhr morgens.

Python

import schedule
import time

def monday_wednesday_task():
    print("Diese Aufgabe wird montags und mittwochs um 9 Uhr morgens ausgeführt.")

# Aufgabe montags und mittwochs um 9 Uhr morgens ausführen
schedule.every().monday.at("09:00").do(monday_wednesday_task)
schedule.every().wednesday.at("09:00").do(monday_wednesday_task)

while True:
    schedule.run_pending()
    time.sleep(1)

Wie du siehst, verarbeitet schedule verschiedene Zeitausdrücke, einschließlich Wochentagen und genauen Ausführungszeiten. Das ist unglaublich praktisch für die Planung von Aufgaben, die mit deiner Arbeit oder geplanten Ereignissen synchronisiert sind.

4. Umgang mit Aufgaben mit unterschiedlichen Zeitbedingungen

Wenn dein Skript mehrere Aufgaben ausführt und jede von ihnen ihren eigenen Zeitplan hat, erledigt schedule dies problemlos. Zum Beispiel kann eine Aufgabe jeden Morgen und eine andere jeden Freitag ausgeführt werden.

Beispiel: Verschiedene Aufgaben in einem Skript kombinieren

Python

import schedule
import time

def morning_task():
    print("Guten Morgen! Zeit für die Morgenaufgabe.")

def friday_task():
    print("Juhu, Freitag! Zeit für die Freitagsaufgabe.")

# Morgenaufgaben jeden Morgen um 7:30
schedule.every().day.at("07:30").do(morning_task)

# Freitagsaufgaben jeden Freitag um 16:00
schedule.every().friday.at("16:00").do(friday_task)

while True:
    schedule.run_pending()
    time.sleep(1)

Praktische Tipps und häufige Fehler

Wenn es darum geht, Aufgaben mit schedule zu automatisieren, gibt es ein paar Aspekte, die du beachten solltest.

Erstens, denke daran, dass schedule Aufgaben im Hauptthread ausführt. Das bedeutet, dass du bei langen Aufgaben oder solchen, die die Ausführung anderer Aufgaben blockieren könnten, über Multithreading oder asynchrone Aufrufe nachdenken solltest.

Zweitens, wenn deine Aufgabe zu einer festen Zeit ausgeführt werden muss und das kritisch ist, stelle sicher, dass dein Gerät eingeschaltet ist und das Skript läuft. schedule funktioniert nicht, wenn das Skript gestoppt oder das Gerät ausgeschaltet ist.

Und schließlich ein häufiger Irrglaube – die Erwartung, dass schedule verpasste Aufgaben nachträglich ausführen kann. Leider, wenn dein Skript nicht ausgeführt wurde, als die Aufgabe hätte abgeschlossen werden sollen, wird schedule sie nicht nachträglich ausführen.

1
Опрос
Arbeiten mit Datum und Uhrzeit,  39 уровень,  4 лекция
недоступен
Arbeiten mit Datum und Uhrzeit
Arbeiten mit Datum und Uhrzeit
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION