gpt4 book ai didi

python - 关闭 Tornado 中的所有(保持事件)套接字连接?

转载 作者:行者123 更新时间:2023-11-30 23:28:15 28 4
gpt4 key购买 nike

我正在运行一组 Tornado 实例,用于处理来自一小组保持事件连接的许多请求。当我关闭服务器进行维护时,我想优雅地关闭保持事件请求,以便我可以关闭服务器。有没有办法用 Tornado 告诉客户“嘿这个套接字正在关闭”?我环顾四周,self.finish() 只是刷新了连接。

最佳答案

最终,我找到了一种能够满足我需要的正常关闭的解决方案(请注意,这可能适用于 Tornado 3.2,因为它取决于具有连接的请求并检查no_keep_alive 属性。最终,除非连接正在主动发送数据,否则无需关闭连接(因此现有的连接并不重要)。

  1. 我在应用程序上设置了一个变量,用于记录应用程序是否正在关闭。
  2. initialize() 中,我会检查这一点,如果要关闭,我会设置 Connection: close header 以符合 RFC,然后还设置 self.request.connection.no_keep_alive = True 在读取更多数据之前但在请求完成之后强制关闭连接。

相对简单 - 看起来像这样:

class GracefulRequestHandler(tornado.web.RequestHandler):
def initialize(self):
if self.application.is_shutting_down:
self.set_header('Connection', 'close')
self.request.connection.no_keep_alive = True

关于python - 关闭 Tornado 中的所有(保持事件)套接字连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720346/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com