Je suis en train d'utiliser le module sched de python pour exécuter une tâche périodiquement, et je pense avoir rencontré un bug.
J'ai constaté qu'il dépend de l'heure du système sur lequel le script python est exécuté. Par exemple, disons que je veux exécuter une tâche toutes les 5 secondes. Si j'avance l'heure du système, la tâche planifiée s'exécutera comme prévu. Cependant, si je recule l'heure du système, disons d'1 jour, alors la prochaine tâche planifiée s'exécutera dans 5 secondes + 1 jour.
Si vous exécutez le script ci-dessous et que vous changez ensuite l'heure de votre système en arrière de quelques jours, vous pourrez reproduire le problème. Le problème peut être reproduit sur Linux et Windows.
import sched
import time
import threading
period = 5
scheduler = sched.scheduler(time.time, time.sleep)
def check_scheduler():
print time.time()
scheduler.enter(period, 1, check_scheduler, ())
if __name__ == '__main__':
print time.time()
scheduler.enter(period, 1, check_scheduler, ())
thread = threading.Thread(target=scheduler.run)
thread.start()
thread.join()
exit(0)
Quelqu'un a une solution python pour contourner ce problème?