Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tornado在停止时如何处理活动请求?_Python_Tornado_Supervisord - Fatal编程技术网

Python Tornado在停止时如何处理活动请求?

Python Tornado在停止时如何处理活动请求?,python,tornado,supervisord,Python,Tornado,Supervisord,这个问题几乎说明了一切。如果我在有主管的服务器上运行Tornado,当我部署代码并需要重新启动Tornado服务器时,活动请求会发生什么情况?他们在请求中被丢弃了吗?允许他们完成吗?监督员发送一个类似HUP或TERM to tornado过程的信号,最重要的一点是tornado如何处理它 不幸的是,当龙卷风得到HUP,TERM,INT这样的信号时,它将简单地退出 Tornado有一个名为autoreload的子模块,它使应用程序能够检测代码文件的更改并重新加载应用程序,但它只在一个进程的调试模式

这个问题几乎说明了一切。如果我在有主管的服务器上运行Tornado,当我部署代码并需要重新启动Tornado服务器时,活动请求会发生什么情况?他们在请求中被丢弃了吗?允许他们完成吗?

监督员发送一个类似HUP或TERM to tornado过程的信号,最重要的一点是tornado如何处理它

不幸的是,当龙卷风得到HUP,TERM,INT这样的信号时,它将简单地退出

Tornado有一个名为autoreload的子模块,它使应用程序能够检测代码文件的更改并重新加载应用程序,但它只在一个进程的调试模式下工作,而不在WSGI应用程序中工作。这是一个开发工具

但是,我们可以在run tornado.autoreload.\u reload函数中手动定义一个函数,并将其注册为HUP sigal。重新加载时应调用can add函数

因为tornado不能在fork模式下很好地管理进程,所以建议为不同的端口运行许多独立的进程。在此模式下,_重新加载的工作方式类似于设置调试标志


毕竟,测试并基准测试它,以确保它在您的应用程序中运行良好。

这不是一个真正的问题;supervisord将使用SIGTERM以与其他任何操作相同的方式重新启动守护进程。