Solución:
Intente lo siguiente:
import time
timeout = time.time() + 60*5 # 5 minutes from now
while True:
test = 0
if test == 5 or time.time() > timeout:
break
test = test - 1
Es posible que también desee agregar un breve descanso aquí para que este bucle no acabe con la CPU (por ejemplo time.sleep(1)
al principio o al final del cuerpo del bucle).
No es necesario utilizar el while True:
bucle en este caso. Hay una forma mucho más sencilla de utilizar la condición de tiempo directamente:
import time
# timeout variable can be omitted, if you use specific value in the while condition
timeout = 300 # [seconds]
timeout_start = time.time()
while time.time() < timeout_start + timeout:
test = 0
if test == 5:
break
test -= 1
Pruebe este módulo: http://pypi.python.org/pypi/interruptingcow/
from interruptingcow import timeout
try:
with timeout(60*5, exception=RuntimeError):
while True:
test = 0
if test == 5:
break
test = test - 1
except RuntimeError:
pass
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)