繁体   English   中英

Python Bot网络故障后如何重试

[英]Python Bot How to Retry after network failure

我有这个Twitter应用程序,我在本地运行,有时由于互联网连接缓慢而失败。 一旦失败,我必须从Cmd重新启动应用程序。 如果网络出现故障,是否有可能使机器人进入睡眠状态并重试代码

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)

我会做这样的事情:

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,我将其置于睡眠状态,否则将执行您想要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM