Python 如何每隔几个小时自动(永久)重新启动程序?

Python 如何每隔几个小时自动(永久)重新启动程序?,python,api,rest,Python,Api,Rest,我有一个计划,我需要积极(运行)约一周 这个程序监听网站的提要,并根据收到的每个信号决定要做什么。但是,我注意到程序会暂停(运行大约8小时后停止,没有错误或迹象),直到ctrl+c并重新启动后才会恢复。鉴于python脚本可以运行的时间没有限制,我如何确保我的程序重新启动,比如说,每五个小时重启一次,这样我就可以确保它不会停止工作 我的程序使用导入请求及其类连接到RESTAPI提要 以下是侦听提要的程序部分 def connect(): domain = 'x' access_t

我有一个计划,我需要积极(运行)约一周

这个程序监听网站的提要,并根据收到的每个信号决定要做什么。但是,我注意到程序会暂停(运行大约8小时后停止,没有错误或迹象),直到ctrl+c并重新启动后才会恢复。鉴于python脚本可以运行的时间没有限制,我如何确保我的程序重新启动,比如说,每五个小时重启一次,这样我就可以确保它不会停止工作

我的程序使用导入请求及其类连接到RESTAPI提要

以下是侦听提要的程序部分

def connect():
    domain = 'x'
    access_token = 'x'
    account_id = 'x'
    instruments = 'x'

    try:
        # Tries to connect, if unsuccessful it will close the connection.
        s = requests.Session()
        url = "https://" + domain + "/v1/prices"
        headers = {'Authorization': 'Bearer ' + access_token, }
        params = {'instruments': instruments, 'accountId' : account_id}
        req = requests.Request('GET', url, headers=headers, params=params)
        pre = req.prepare()
        resp = s.send(pre, stream=True, verify=True)
        return resp
    except Exception as e:
        s.close()
        print "Caught exception when connecting to stream\n" + str(e)


def demo(display_heartbeat):
    response = connect()
    if response.status_code != 200:
        print response.text
        return
    for line in response.iter_lines(1):
        if line:
            try:
                msg = json.loads(line)
            except Exception as e:
                print "Caught exception when converting message into json\n" + str(e)
                return

            if display_heartbeat:
                print line
            else:
                if msg.has_key("instrument") or msg.has_key("tick"):
                    parser.json_parser(msg)


def main():
    usage = "usage: %prog [options]"
    parser = OptionParser(usage)
    parser.add_option("-b", "--displayHeartBeat", dest="verbose", action="store_true",
                      help="Display HeartBeat in streaming data")
    display_heartbeat = False
    (options, args) = parser.parse_args()
    if len(args) > 1:
        parser.error("incorrect number of arguments")
    if options.verbose:
        display_heartbeat = True
    demo(display_heartbeat)

if __name__ == "__main__":
    main()

您的程序可能有错误。你能举一个简单的例子来重现这个问题吗?8小时,这是一个公平的工作日。脚本也是人,很可能是随着时间的推移而累积的某种资源泄漏。但是,如果没有代码,这只是一个猜测。@auryndb如果有人写了一个脚本,让您每x小时重新启动一次,那么该脚本不需要每y小时重新启动一次,该脚本需要每z小时重新启动一次,依此类推。最好只是找到问题,而不是在你不明白到底哪里出了问题的地方做一些简陋的变通。如果我需要暴力,我会使用cron。