2010-05-17 3 views
3

Je souhaite exécuter un programme exécutant une fonction toutes les 4 heures. Quelle est la façon la moins consommatrice de le faire?Planification d'une tâche sur python

+0

Moins consommateur? Veuillez clarifier – rossipedia

+2

Quel système d'exploitation utilisez-vous? Si c'est unix, alors la réponse est probablement cron ... – unutbu

+2

Quelle plateforme? Sous Unix/Linux, le mécanisme at/cron est la bonne façon de le faire. Sous Windows, vous devez créer un service, enregistrer son UUID et organiser son démarrage au démarrage, et envoyer votre premier-né à Redmond, ou sumptin comme ça ... – msw

Répondre

6

façon Simlest je peux penser (en python depuis le poste est marqué avec python):

import time 

while True: 
    do_task() 
    time.sleep(4 * 60 * 60) # 4 hours * 60 minutes * 60 seconds 
+0

ok cela fonctionne très bien, mais je suis troublée puissance du processeur utilisé, ou est-ce à peu près l'efficacité preuve? – Asaf

+1

"efficacité preuve?" Qu'est-ce que ça veut dire? Pensez-vous qu'il utilise le processeur pendant le sommeil? –

+3

Il est assez sûr de dire que cela met simplement le processus en veille. Pratiquement aucune utilisation du processeur jusqu'à ce qu'il se réveille. – rossipedia

3

Utilisez la construction en fil de minuterie:

from threading import Timer 

def function_to_be_scheduled(): 
    """Your CODE HERE""" 

interval = 4 * 60 * 60 #interval (4hours) 

Timer(interval, function_to_be_scheduled).start() 
+0

Est-ce que 'function_to_be_scheduled' ne serait pas exécuté une seule fois? Et pas répété * toutes les * 4 heures. – k0pernikus

Questions connexes