2012-09-07 2 views
0

Je veux savoir s'il existe un moyen dans python 2.7 d'exécuter du code juste pour un temps donné, comme 3600 secondes. Le temps peut varier d'une exécution à l'autre. Toutes les idées sont les bienvenues car je suis bloqué avec ce problème.Comment exécuter un code pour une période donnée

+0

Vous voudrez peut-être envisager d'ajouter un délai d'attente de sous-processus: http://stackoverflow.com/questions/1191374/subprocess-with-timeout – rubik

+0

son pas clair ce que vous demandez ... lancez-vous avec subroccess? vous pouvez faire 'si time.time() - starttime> somevalue: return' dans le côté d'une boucle dans une fonction ... –

+0

related: [Arrêter de lire le processus de sortie en Python sans se bloquer?] (http://stackoverflow.com/a/4418891/4279) – jfs

Répondre

1

Pour permettre d'interrompre les calculs pour une raison quelconque:

def compute_something(stopped): 
    while not stopped: 
     # continue computations 

stopped = [] 
threading.Timer(3600, stopped.append, args=[True]).start() 
compute_something(stopped) 
+0

Merci pour le code, c'est ce que je cherchais. –

Questions connexes