Seite 1 von 1

apscheduler - doppelte Uhrzeit bei cron trigger ...

Verfasst: Donnerstag 13. August 2015, 12:54
von der_Mausbiber
Hallo,

ich arbeite gerade mit dem apscheduler und ich nutze dabei sowohl den cron-, als auch den interval-Trigger.

In der Variable date_start_on steht Datum und Uhrzeit drin, z.Bsp. "2015-08-10 15:45:00".

Mit dem folgenden Code klappt alles, die Funktion do_something wird einmal am Tag um 15:45 ausgeführt.

Code: Alles auswählen

apscheduler.add_job(do_something, 'interval', days=1, start_date=date_start_on)
Versuche ich jetzt aber das gleiche mit dem cron-Trigger klappt das erstmal nicht.

Code: Alles auswählen

apcheduler.add_job(do_something, 'cron', day_of_week="mon,tue,wed,thu,fri", start_date=date_start_on)
Ich hatte erwartet das die Funktion do_something jetzt an jedem Wochentag um 15:45 ausgeführt wird - wird sie aber nicht.
Tatsächlich macht er gar nichts.

Erst wenn ich das Ganze so schreibe klappt es:

Code: Alles auswählen

apcheduler.add_job(do_something, 'cron', day_of_week="mon,tue,wed,thu,fri", hour=15, minute=45, start_date=date_start_on)
Ich muss also nochmal explizit die Uhrzeit angeben, obwohl diese bereits in der Variable date_start_on steht.

Mache ich hier irgendwas falsch oder muss ich beim cron-Trigger wirklich die Uhrzeit doppelt angeben, bzw. nimmt das "start_date"-Feld nur Datumsangaben an?

Re: apscheduler - doppelte Uhrzeit bei cron trigger benötigt

Verfasst: Donnerstag 13. August 2015, 13:50
von BlackJack
@der_Mausbiber: Du musst die Zeit nicht doppelt angeben sondern Du musst die Zeit angeben und kannst mit `start_date` ein `datetime`-Objekt angeben vor dem der Trigger nicht auslöst. Das kann die gleiche Uhrzeit besitzen wie die Zeit zu der Du den Job ausführen lassen willst, muss es aber nicht. Kann man die Dokumentation an der Stelle so falsch verstehen?

Re: apscheduler - doppelte Uhrzeit bei cron trigger benötigt

Verfasst: Donnerstag 13. August 2015, 14:03
von der_Mausbiber
Wie immer Danke :)

Ja, ich finde man kann das schon falsch verstehen.
Ich hatte erwartet das das gleiche Übergabeargument "start_date" auch komplett gleich funktioniert funktioniert.
Bei "interval" nutzt er die Zeitangabe im Datetime-Objekt, bei "cron" aber offensichtlich nicht auf die gleiche Weise.
Für den cron-Trigger heißt das also im Umkehrschluß, das ich erstmal meine Variable "date_start_on" zerpflücken muss, um mir von dort Stunde und Minute zu holen.

Also ich fand es auf den ersten Blick seltsam, bin aber froh das ich jetzt Bescheid weiß.
Nur darum geht es.

Danke :D

Re: [solved] apscheduler - doppelte Uhrzeit bei cron trigger

Verfasst: Donnerstag 13. August 2015, 14:18
von BlackJack
@der_Mausbiber: Bei beiden ist `start_date` die ”Untergrenze”. Bei ”interval” ist es gleichzeitig der erste Zeitpunkt, was bei ”cron” nicht funktionieren kann, weil da ja die Bezugspunkte ganz anders gesetzt werden.

Re: [solved] apscheduler - doppelte Uhrzeit bei cron trigger

Verfasst: Donnerstag 13. August 2015, 14:20
von der_Mausbiber
weil da ja die Bezugspunkte ganz anders gesetzt werden.
Jetzt ist der Groschen bei mir gefallen :wink: