2017-12-10 1 views
0

ich einige Job wollen am Anfang jeder Stunde ausgeführt werden, zB bei 4'O Uhr, 5'O Uhr und so weiter ...Schedule Job zu Beginn jeder Stunde beginnen

ich versuche zu Verwenden Sie Job-Scheduler, aber das Problem ist die Planung geschieht jede Stunde nach dem ersten Start zB wenn Anwendung um 4:20 gestartet wird, der nächste Lauf wird 5:20, 6:20 und so weiter .. Ich bin nicht in der Lage, es zu machen Zeitplan für den Beginn jeder Stunde (5:00, 6:00) etc.

sched = BlockingScheduler() 
sched.add_job(log_setup, 'interval', hours=1) 
sched.start() 

Wie kann ich es funktionieren lassen?

Antwort

0

Eine Möglichkeit, dies zu tun ist, um die ‚cron‘ Scheduler anstelle des ‚Intervall‘ Scheduler zu verwenden. So würde Ihr Code in etwa so aussehen:

sched.add_job(log_setup, 'cron', minute=0) 

Dies sollte den Job jede Stunde an der 00-Marke feuern. More information about using cron style jobs with the APScheduler library can be found here

+0

Dies muss .. arbeiten, aber sobald ich das ‚cron‘ geändert, war Anwendung vollständig blockiert .. Ich habe es in den Hintergrundplaner geändert, und jetzt funktioniert es nicht – user2407394

+1

Ignorieren Sie es .. das funktioniert – user2407394

0

Sie das Programm starten könnte und es dann Pause, bis die Zeit ist, was Sie wollen, wie folgt aus:

chosen_time = 9:00 #change to whatever your starting time is 
if datetime.datetime.now().strftime("%H:%M")) != chosen_time: 
    sched.pause() 
else: 
    sched.resume() 
Verwandte Themen