如果某个方法正在执行某个方法,请重复

时间:2015-05-16 17:57:49

标签: python exception methods repeat

有没有办法中断执行方法并在时间结束时重复它?

例如连接到某个服务器的方法连接。

try:
    connection(server,5)
except:
    repeat

当方法连接运行超过5秒时,让我们遇到这种情况。然后我想提出异常并重复它。我没有必要例外,我想重复一遍。

我正在考虑制作第二个线程来检查时间和时间,但是在另一个线程中中断了该方法,但在我看来应该有一个更简单的解决方案。

2 个答案:

答案 0 :(得分:3)

或者,您也可以使用while循环:

def connection(server, timeout):
    while everything_ok:
        try:
            # do stuff
        except Exception:
            continue
        break

当然,如果连接是你的方法而不是某个第三方库提供的方法。

答案 1 :(得分:1)

你可以使用线程。

代码:

import threading
success = False
def connect():
    global success
    connection(server,5)
    success = True
th = threading.Thread(target=connect)
th.start()
time.sleep(5) #timeout 5 sec
if success:
    yuhuuu   
else:
    th.stop() #kill task