2016-06-21 7 views
0

私はこのTwitterアプリケーションを持っていますが、インターネット接続が遅いためにローカルで実行しています。一度それが失敗すると、私はCmdからアプリケーションを再起動する必要があります。ネットワークに障害が発生し、コードPython Botネットワーク障害後に再試行する方法

import tweepy, time, sys 

argfile = str(sys.argv[1]) 
#APP 
#CONSUMER_KEY = '11' 
#CONSUMER_SECRET = '11' 
#ACCESS_KEY = '11' 
#ACCESS_SECRET = '11'  
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
    auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
    api = tweepy.API(auth) 

    filename=open(argfile,'r') 
    f=filename.readlines() 
    filename.close() 

    for line in f: 
     api.update_status(line) 
     time.sleep(1200) 
+0

はい、「試行」と「キャッチ」を使用してからもう一度進みます。 – jonrsharpe

+0

助けてくれてありがとう 私はプログラミングの専門家ではありません。コードに書く方法を教えてください。 – Leonardo19

+0

https://docs.python.org/3/tutorial/errors.html – jonrsharpe

答えて

0

を再試行する場合、私はこのようなものだろうボット睡眠をすることが可能です:

import requests 
import socket 

def get_json(url): 
    """Fetches JSON response from specified URL""" 

    fetched_data = dict() 
    try: 
     request = requests.get(url, timeout=2) 
     try: 
      fetched_data = request.json() 

      print("JSON response data:") 
      print(fetched_data) 

     except ValueError: 
      fetched_data["status"] = "60" 
    except requests.ConnectionError: 
     fetched_data["status"] = "60" 
    except requests.Timeout: 
     fetched_data["status"] = "60" 
    except requests.HTTPError: 
     fetched_data["status"] = "60" 
    except requests.URLRequired: 
     fetched_data["status"] = "60" 
    except requests.TooManyRedirects: 
     fetched_data["status"] = "60" 
    except socket.timeout: 
     fetched_data["status"] = "60" 

    return data 

その後に、私はちょうど状態を確認し、いくつかのwhileループでそれをラップしますステータスが60の場合はそれを寝かせ、そうでなければあなたが望むことをします。

+0

結果は同じですか? – jonrsharpe

関連する問題