Je souhaite exécuter une tâche toutes les 2 heures. Python a un module Timer in Threading, mais répond-il à mes besoins? Comment puis-je générer un minuteur approprié moi-même?Exécuter une tâche de temps en temps au cours d'un processus
Répondre
Si vous voulez que votre code à exécuter toutes les 2 heures la meilleure façon serait d'utiliser Cron ou un programmateur similaire en fonction de votre système d'exploitation
si vous voulez que votre programm appeler une fonction toutes les secondes n (7200 dans votre cas) vous pourriez utiliser un thread et event.wait. L'exemple suivant démarre une minuterie qui se déclenche à chaque seconde et imprime une chaîne à stdout
import threading
import time
class TimerClass(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.event = threading.Event()
def run(self):
while not self.event.is_set():
print "do something"
self.event.wait(1)
def stop(self):
self.event.set()
tmr = TimerClass()
tmr.start()
time.sleep(10)
tmr.stop()
Merci pour votre réponse. Cela fonctionne bien, et je l'ai appris. –
@wok pourquoi? start est appelé une fois et utilisé pour faire l'installation, run est la méthode qui fait le travail que vous voulez faire –
Mon erreur sur l'héritage. – Wok
cela peut être une solution .......
import time
def fun1():
print "Hi "
while 1:
fun1()
time.sleep(5)
La fonction fun1 sera exécutée toutes les 5 secondes Mais je ne sais pas si c'est un bon moyen d'invoquer une fonction après un certain temps. Des inconvénients de cette solution?
Voulez-vous exécuter une tâche toutes les deux heures ou voulez-vous qu'un script Python fasse quelque chose toutes les deux heures? –
Pour appeler une autre fonction python toutes les 2 heures –