4
如何在Python中真正實現超時? http://eventlet.net/doc/modules/timeout.html如何在python中實現超時?
代碼如下所示:
#!/usr/bin/python
import eventlet
import time
import sys
import random
while True:
try:
with eventlet.timeout.Timeout(1, False):
print 'limited by timeout execution'
while True:
print '\r' + str(random.random()),
sys.stdout.flush()
eventlet.sleep(0)
print ' Never printed Secret! '
except Exception as e:
print ' Exception: ', e
finally:
print ''
print ' Timeout reached '
print ''
超時永遠不會達到。我錯在哪裏?
P.s.我換成:
time.sleep(0.1)
有:
eventlet.sleep(0)
添加假的例外,現在它工作得很好:
with eventlet.timeout.Timeout(1):
變化:
with eventlet.timeout.Timeout(1, False):
但它只能與eventlet.sleep(0.1)
E.g此代碼錯誤:
#!/usr/bin/python
import eventlet
import time
start_time = time.time()
data = 0
with eventlet.timeout.Timeout(1, False):
while True:
data +=1
print 'Catch data ', data, ' in ', time.time() - start_time
我只需添加休眠0秒:
eventlet.sleep(0)
它就像一個魅力。
解決
你能粘貼我真正的代碼? – 2013-07-08 20:58:56
@stackterminator將「time.sleep」替換爲「eventlet.sleep」。 – kevingessner
我這樣做,但它仍然不起作用 – 2013-07-08 21:02:16