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