2016-06-07 3 views
0

Ich habe die ausgezeichnete schedule Bibliothek verwendet, um eine Vielzahl von Jobs zu laufen, aber es gibt eine Sache, die ich nicht finden kann.Zeitplan Wiederholung von Jobs in Python mit Zeiteinheit als Variable

Der Python-Code, einen Job alle 10 Minuten für den Betrieb sieht wie folgt aus:

schedule.every(10).minutes.do(job) 

Frage ist: Wie würde ich elegant die Zeiteinheit als eine Variable übernehmen? Ich möchte Folgendes tun:

interval = 3 
time_unit = 'hours' 
schedule.every(interval).units(time_unit).do(job) 

, um alle 3 Stunden einen Job auszuführen. Durch die Verwendung von Variablen könnte der Zeitplan konfigurierbar sein.

Ausgenommen das obige Beispiel funktioniert nicht: das units Mitglied ist nur ein lesbarer Wert.

eval ist in diesem Zusammenhang nicht sicher.

+0

Was Sie brauchen, genau? Möglichkeit, den Yml oder etwas anderes zu parsen. – Murali

+0

Danke @Murali, ich hoffe es ist jetzt klar – Nick

+0

Was ist die Ausnahme oder der Fehler, den Sie bekommen? – Murali

Antwort

0

Ich habe meine eigene Frage beantwortet. Danke an diejenigen, die geantwortet haben.

# specify time interval units as a variable in code... 
interval = 3 
time_unit = 'hours' 
schedule.every(interval).set_units(time_unit).do(job) 

Hotfix in der schedule Bibliothek (Klasse Job) - fügen Sie die folgende Methode:

def set_units(self, unit): 
    self.unit = unit if unit[-1] == 's' else unit + 's' 
    return self 
+0

Nicht sicher, wie dies das Problem beheben würde, das Sie sind beschreibend. – pzp

Verwandte Themen