Python 空闲时重新启动tornado Web服务器
我正在使用Tornado Web服务器,希望了解如何确定服务器是否空闲了一段时间,然后重新启动它Python 空闲时重新启动tornado Web服务器,python,tornado,Python,Tornado,我正在使用Tornado Web服务器,希望了解如何确定服务器是否空闲了一段时间,然后重新启动它 我试图确定self.requests之间的时间差,以确定是否有一段时间没有收到任何请求。但是有更好的方法吗?一个简单的方法是使用全局变量保存最后一个请求的时间戳,并在处理请求时更新它。比如: #startup initialization code _last_request = datetime.datetime.now() #we will use these variables later
我试图确定self.requests之间的时间差,以确定是否有一段时间没有收到任何请求。但是有更好的方法吗?一个简单的方法是使用全局变量保存最后一个请求的时间戳,并在处理请求时更新它。比如:
#startup initialization code
_last_request = datetime.datetime.now()
#we will use these variables later
interval = datetime.timedelta(seconds=30)
idle_timeout = datetime.timedelta(seconds=1800)
...
#update timestamp in handler(s)
global _last_request
_last_request = datetime.datetime.now()
然后,您将添加一个函数,该函数会不时检查_last_request变量:
def idle_check():
if _last_request - datetime.datetime.now() > idle_timeout:
#stop the IOLoop
tornado.ioloop.IOLoop.instance().stop()
else:
#schedule to run again
tornado.ioloop.IOLoop.instance().add_timeout(interval, idle_check)
在启动IOLoop之前,不要忘记调用idle\u check函数。因为我认为没有其他方法可以做到这一点。我会接受这个答案。