擅长:python、mysql、java
<p>如果您使用的是进程,我建议您使用<a href="https://docs.python.org/2/library/multiprocessing.html#multiprocessing.Queue" rel="nofollow">Queue</a>来处理结果传输,并间接地管理函数超时。在</p>
<pre><code>from multiprocessing import Process, Queue
from flaky.library import FlakyClient
import time
TIMEOUT_IN_SECS = 10
def make_flaky_call(queue):
result = FlakyClient.call()
queue.put(result)
queue.put('END')
q = Queue()
proc = Process(target=make_flaky_call, args=(q,))
proc.start()
content = 0
result = None
while content != 'END':
try:
content = q.get(timeout=TIMEOUT_IN_SECS)
if content != 'END':
result = content
except Empty:
proc.terminate()
raise Exception("Timeout during call to FlakyClient.call().")
</code></pre>