Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 freeBSD中的龙卷风连接未关闭_Python_Freebsd_Tornado_Connection - Fatal编程技术网

Python freeBSD中的龙卷风连接未关闭

Python freeBSD中的龙卷风连接未关闭,python,freebsd,tornado,connection,Python,Freebsd,Tornado,Connection,我有一个tornado web服务器,类似于: app = tornado.web.Application(handlersList,log_function=printIt) app.listen(port) serverInstance = tornado.ioloop.IOLoop.instance() serverInstance.start() 处理程序由tornado.web.RequestHandler生成。 当我在freeBSD上运行服务器时,有时页面/资源需要很长时间才能

我有一个tornado web服务器,类似于:

app = tornado.web.Application(handlersList,log_function=printIt)
app.listen(port)
serverInstance = tornado.ioloop.IOLoop.instance()  
serverInstance.start()
处理程序由
tornado.web.RequestHandler
生成。 当我在freeBSD上运行服务器时,有时页面/资源需要很长时间才能加载, 尝试调试时,我发现在等待页面加载时,Tornado还没有创建请求对象,并且查看netstat结果,我看到很多与状态已建立的连接

所以我的想法是,有太多未关闭的连接,操作系统拒绝来自同一会话的新连接

会是这样吗

我没有在get、post函数中执行任何操作,在编写之后,是否应该在返回之前关闭/关闭连接

编辑1:获取/发布是同步的(无@异步)

编辑2:通过强制
no\u keep\u alive

class BasicFeedHandler(tornado.web.RequestHandler):

    def finish(self, chunk=None):
        self.request.connection.no_keep_alive = True
        tornado.web.RequestHandler.finish(self, chunk) 
我不确定keep_alive连接是否应该在客户端关闭连接后保持打开状态这么长时间,不管这种解决方法如何工作。
我通过查看
HTTPConnection.\u finish\u request
,找到了如何在没有保持活动状态时执行此操作 这一行
self.stream.read\u直到(b(“\r\n\r\n”),self.\u header\u callback)
运行。 在此上下文中\r\n\r\n是什么?

请尝试以下操作:

class Application(tornado.web.Application):
    def __init__(self):
        ...

http_server = tornado.httpserver.HTTPServer(Application(),no_keep_alive=True)
http_server.listen(port)
tornado.ioloop.IOLoop.instance().start()

如果您有疑问,请尝试调用
self.finish
。处理程序的get/set方法是否声明为异步的?这似乎是一个已知的问题,邮件列表中有许多关于Tornado泄漏文件描述符的投诉。