2017-10-23 7 views
1
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())と言っています。いいえ、接続を最大で5回、is_connected()でテストしてください。その時間内に接続がTrueであれば、スケジュールタスクを実行するか、そうでなければパスします。どんな巧妙なアイデアをするか?create_and_update_worksheets()関数を実行する前の条件

各試行の間に5分待つ必要があることに注意してください。試行がTrueの場合、create_and_update_worksheets()が実行され、残りの試行は終了しません。クリアでは、3回目の試行で成功すると、schedule.every().minute.do(create_and_update_worksheets())と4回目と5回目の試行は試行されません。

答えて

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秒ごとの接続をチェックし、それは、それはスケジュールタスクを接続している場合。

+0

申し訳ありませんが、私の質問は少し不明かもしれませんが、試行のたびに5分待ってください。試行がTrueの場合、 'create_and_update_worksheets()'が実行され、残りの試行はあなたの答えと同じように終了しません。明らかに、3回目の試行は成功し、 'schedule.every()。minute.do(create_and_update_worksheets())'となり、4回目と5回目の試行は試みられません。 –

+0

@ J.Doe私は自分の答えを更新しました。 – gommb

関連する問題