2010-10-11 3 views
2

Existe-t-il un moyen facile d'exécuter un segment de code python toutes les 5 minutes?Activer le programme Python toutes les 5 minutes?

Je sais que je pourrais le faire en utilisant time.sleep() mais y avait-il un autre moyen?

Par exemple, je veux courir ce toutes les 5 minutes:

x = 0 
def run_5(): 
    print "5 minutes later" 
    global x += 5 
    print x, "minutes since start" 

C'est seulement un exemple faux, mais l'idée est là.

Des idées?

Je suis sur linux et je serais heureux d'utiliser cron mais je me demandais juste s'il y avait une alternative python?

+1

http://stackoverflow.com/questions/373335/suggestions-for-a-cron-like-scheduler-in-python – Emil

Répondre

2

vous pouvez le faire avec le module de filetage

>>> import threading 
>>> END = False 
>>> def run(x=0): 
...  x += 5 
...  print x 
...  if not END: 
...   threading.Timer(1.0, run, [x]).start() 
... 
>>> threading.Timer(1.0, run, [x]).start() 
>>> 5 
10 
15 
20 
25 
30 
35 
40 

Ensuite, quand vous le voulez arrêter, mettre END = True.

2

Vous voudrez peut-être jeter un oeil à cron si vous utilisez un OS de type * nix. Vous pouvez facilement avoir vous exécutez programme toutes les 5 minutes

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

https://help.ubuntu.com/community/CronHowto

+0

Je suis sur linux et je serais heureux d'utiliser cron mais je me demandais juste s'il y avait une alternative python ? –

+0

En utilisant cron, chaque exécution de votre programme sera indépendante. S'il se bloque ou échoue sur une passe, cron l'exécutera encore dans cinq minutes. Vous pourriez imiter ce comportement dans python, mais cela nécessiterait une réflexion, surtout si vous vouliez recevoir la sortie d'une exécution échouée. – AndrewF

+0

"un peu de réflexion" = essayer de prendre – Phob

0

Si vous êtes sur une plate-forme Windows, vous pouvez utiliser une tâche planifiée.

Sinon, utilisez cron, merveilleux, merveilleux cron.

Questions connexes