[英]Does Python timeout after a certain period of time?
我在Arch Linux中运行了一个旨在永久循环的Python2脚本-但是,它在这么多小时后停止运行。
这是脚本:
import RPi.GPIO as GPIO
import time
import urllib2
import xml.dom
from urllib2 import Request, urlopen, URLError, HTTPError
from xml.dom import minidom
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.output(15, True)
GPIO.output(16, True)
saved_store_pickup_order = False;
while True:
req = Request('http://www.example.com/apiv2/pi/alerts/')
try:
response = urlopen(req)
except HTTPError as e:
print 'The server couldn\'t fulfill the request: ', e.code
except URLError as e:
print 'Failed to reach server: ', e.reason
else:
xml = response.read()
xmldoc = minidom.parseString(xml)
store_pickup = xmldoc.getElementsByTagName('current_store_pickup')
if len(store_pickup):
current_store_pickup_order = store_pickup[0].childNodes[0].nodeValue
if not saved_store_pickup_order:
saved_store_pickup_order = current_store_pickup_order
if current_store_pickup_order != saved_store_pickup_order:
GPIO.output(15, False)
GPIO.output(16, False)
saved_store_pickup_order = current_store_pickup_order
time.sleep(5)
GPIO.output(16, True)
time.sleep(25)
我想知道默认情况下执行Python脚本是否有超时时间。
同样,如果有区别的话,此脚本由systemd
在启动时启动。
try: except:
整个循环try: except:
块
考虑从print
语句转移到使用日志记录库。
示例(未试用):
import logging
mylog = logging.getLogger(__name__)
mylog.info('start')
while True:
try:
out = dostuff(data)
mylog.debug('got {}, output={}'.format(data, out))
except KeyboardInterrupt:
break
except Exception:
mylog.exception('uhoh')
mylog.info('done')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.