有没有办法中断执行方法并在时间结束时重复它?
例如连接到某个服务器的方法连接。
try:
connection(server,5)
except:
repeat
当方法连接运行超过5秒时,让我们遇到这种情况。然后我想提出异常并重复它。我没有必要例外,我想重复一遍。
我正在考虑制作第二个线程来检查时间和时间,但是在另一个线程中中断了该方法,但在我看来应该有一个更简单的解决方案。
答案 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