import socket, schedule, time
from create_and_update_xlsx_sheets import create_and_update_worksheets
REMOTE_SERVER = "www.google.com"
def is_connected():
try:
host = socket.gethostbyname(REMOTE_SERVER)
s = socket.create_connection((host, 80), 2)
return True
except:
pass
return False
schedule.every().minute.do(create_and_update_worksheets())
我有函数create_and_update_worksheets()
函数。我想在运行它之后测试一下互联网连接。我想对schedule.every().minute.do(create_and_update_worksheets())
说,好吧,最多用is_connected()
测试连接5次。如果在该时间内连接为True,则运行计划任务或以其他方式通过。任何聪明的想法如何做到这一点?
请注意,我希望每次尝试之间等待5分钟。如果尝试为True,则它将运行create_and_update_worksheets()并且不完成剩余的尝试。很明显,在第三次尝试成功,然后schedule.every().minute.do(create_and_update_worksheets())
,第四次和第五次尝试将不会被尝试。
答案 0 :(得分:0)
这应该适合你:
import socket, schedule, time
from create_and_update_xlsx_sheets import create_and_update_worksheets
REMOTE_SERVER = "www.google.com"
def is_connected():
try:
host = socket.gethostbyname(REMOTE_SERVER)
s = socket.create_connection((host, 80), 2)
return True
except:
pass
time.sleep(300)
return False
for i in range(5):
if is_connected():
create_and_update_worksheets()
schedule.every().minute.do(create_and_update_worksheets())
break
它每秒检查连接5秒钟,如果连接,它会安排任务。