擅长:python、mysql、java
<p>我无法与Python2.7交流,但是在Python3中,<em>正确的</em>方法是使用<code>asyncio</code>和{a1}的概念。在</p>
<pre><code>import concurrent
def make_flaky_call():
return FlakyClient.call()
timeout = 10
with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
future = executor.submit(make_flaky_call) # get a future object
try:
result = await future.result(timeout = timeout)
except concurrent.futures.TimeOutError:
# if a timeout occurs on the call, do something
result = None # default value
</code></pre>
<p>这相当像Python。您可以将其与代码主体集成。它正确地使用<code>try-except</code>进行错误处理。它有一个内置的超时。它只在Python3.5中工作(感谢<code>await</code>-但是改为<code>yield from</code>使其与Python3.4兼容)。在</p>
<p>不幸的是,对于Python2.7,正确的处理方法是执行当前的操作。在</p>