0
我使用雙絞線Python和有一些代碼基本上是這樣的:扭曲reactor.callLater()在儘量不陷入惟獨在某些機器
class TimeoutException(Exception):
pass
def timeout(msg):
raise TimeoutExpection(msg)
def create_timeout(len, msg):
return reactor.callLater(len, timeout, msg)
在其他地方的代碼...
try:
timeout_call = create_timeout(10, "timeout")
db_res = yield some_large_io_request()
except Exception as e:
print e
raise web.HTTPError(408) # cyclone error
else:
if timeout_call.active():
timeout_call.cancel()
這是運行在一個Docker容器中,但是在某些機器上,其他的嘗試除了工作,對於TimeoutException類型,我得到一個未處理的錯誤,但是我仍然得到了一個408.目前還不清楚如何/爲什麼它是間歇性的,有什麼想法?
這些片段是不完整的片段。當這段代碼運行時,你希望發生什麼?爲什麼?你觀察到什麼發生了(確切地說 - 報價日誌,最好)?如果您可以使片段更完整,那也會很棒(例如,我猜*您正在使用'inlineCallbacks',但您在問題中沒有提到這一點)。 –
我期待嘗試,除了捕捉異常,並沒有得到未處理的錯誤。是的,我使用'inlineCallbacks',但這不是代碼的重要組成部分,您可以刪除該行,它仍然是相同的行爲,這只是更現實的。 –
捕捉什麼異常? –