Moin,
ich hab gerade ein kleines Problem und bin mir nicht sicher wie ich es am Besten lösen soll.
Und zwar möchte ich eine Funktion genau einmal in der Stunde ausführen, jeweils am Beginn einer neuen Stunde.
Meine Idee war jetzt, zu schauen wieviele sekunden noch bis zur nächsten vollen Stunde vergehen und das der funktion als sleep zu geben.
Ist das Sinnvoll, oder gibts da was besseres?
Mein zweites Problem, ich hab leider keine Idee wie ich rausbekomme wieviel Zeit es noch bis zur nächsten Stunde sind
Hoffe ihr könnt mir helfen.
Schonmal danke im Vorraus.
timediff next hour
Schau dir mal threading.Timer an. Vielleicht ist es das was du suchst
Btw wieso muss es zu einem genauen Zeitpunkt passieren? Reicht nicht einfach 3600 Sekunden warten?
Btw wieso muss es zu einem genauen Zeitpunkt passieren? Reicht nicht einfach 3600 Sekunden warten?
Danke, aber das ist nicht das was ich suche.
Ich möchte Messpunkte erfassen und das zu jeder vollen Stunde.
3600 sec wären ja einmal in der Stunde abhängt von der Startzeit des Scripts.
Bräuchte also ne funktion die mir die sekunden bis zur nächsten vollen stunde sagt und da haperts leider bei der umsetzung, da ich nicht weiß wie ich das hinbekomme.
Würde auch nichts bringen das script 1x pro stunde via cron auszuführen, da das script aus mehreren threads besteht die in dieser stunde noch andere arbeiten verrichten.
Ich möchte Messpunkte erfassen und das zu jeder vollen Stunde.
3600 sec wären ja einmal in der Stunde abhängt von der Startzeit des Scripts.
Bräuchte also ne funktion die mir die sekunden bis zur nächsten vollen stunde sagt und da haperts leider bei der umsetzung, da ich nicht weiß wie ich das hinbekomme.
Würde auch nichts bringen das script 1x pro stunde via cron auszuführen, da das script aus mehreren threads besteht die in dieser stunde noch andere arbeiten verrichten.
Es gibt das datetime-, das time- und das timedelta-Modul.taake hat geschrieben:Bräuchte also ne funktion die mir die sekunden bis zur nächsten vollen stunde sagt und da haperts leider bei der umsetzung, da ich nicht weiß wie ich das hinbekomme.
Das Leben ist wie ein Tennisball.
Danke die kenne ich
Ich muss nur irgendwie eines dazu bringen mir immer die nächste stunde zu gebe und dann mit timedelta die diff zum jetzigen zeitpunkt auszurechnen.
Aber genau an dem Punkt die jeweils nächste Stunde zu bekommen scheiterts, weiß nicht genau wie ich das bewerkstelligen soll.
Ich muss nur irgendwie eines dazu bringen mir immer die nächste stunde zu gebe und dann mit timedelta die diff zum jetzigen zeitpunkt auszurechnen.
Aber genau an dem Punkt die jeweils nächste Stunde zu bekommen scheiterts, weiß nicht genau wie ich das bewerkstelligen soll.
@taake: Du lässt Dir die Zeit *jetzt* geben, addierst da eine Stunde drauf, ersetzt die Minuten, Sekunden, usw. durch 0, und ziehst davon die aktuelle Zeit vom Anfang ab. Dabei kann es einen Sonderfall geben, über den man eventuell nachdenken muss.
Wunderbar, es klappt.
Nochmals vielen Dank
Nochmals vielen Dank
Code: Alles auswählen
def time_to_next_hour():
now = datetime.datetime.now().replace(microsecond=0)
plus1 = now + datetime.timedelta(hours=1)
time_clear = plus1.replace(minute=0,second=0,microsecond=0)
time_to_hour = time_clear - now
return time_to_hour.total_seconds()