博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决twisted 的socket长连接问题
阅读量:6713 次
发布时间:2019-06-25

本文共 678 字,大约阅读时间需要 2 分钟。

hot3.png

有时易造成 Socket 连接打开过多

当用此 Web Server 接收 Hub Server 发送过来的各种请求时,遇到了一个大问题:

随着时间推移,处于 ESTABLISHED 状态的 Socket 连接越来越多,慢慢抵达500多个,

TCP    X.X.X.X:8080     72.14.192.68:55693     ESTABLISHED

TCP     X.X.X.X:8080     74.125.126.80:59064    ESTABLISHED

最终导致服务爆出异常“too many file descriptors in  select”,当此异常发生时,已无法挽救,只能重启服务

解决方法

from twisted.protocols.policies import TimeoutMixin

class TimeoutTester(protocol.Protocol, policies.TimeoutMixin):

    conn_timeout = 3
    data_timeout = 300
    def connectionMade(self):
        self.setTimeout(self.conn_timeout)
    def dataReceived(self, data):
        self.setTimeout(self.data_timeout)
    def connectionLost(self, reason=None):
        self.setTimeout(None)

转载于:https://my.oschina.net/u/1032854/blog/205374

你可能感兴趣的文章
AndroidStudio好用的插件
查看>>
聊一聊 JS 中的『隐式类型转换』
查看>>
calc 与 box-sizing 的替代
查看>>
如何使用 Java 构建微服务?
查看>>
通过 SignalR 类库,实现 ASP.NET MVC 的实时通信
查看>>
[x98 air 3g平板]安装任意版本32位win10的方法
查看>>
12个用得着的JQuery代码片段
查看>>
Apache POI 4.1.0 发布,Office 文档的 Java API
查看>>
[Leetcode] Move Zeroes 移动零
查看>>
如何在Ubuntu 14.04服务器上自动化部署Spring Boot的应用
查看>>
CUBA Platform 6.10.8 发布,企业级应用开发平台
查看>>
ApiPost自动化测试基础之:流程测试
查看>>
PostgreSQL sharding : citus 系列6 - count(distinct xx) 加速 (use 估值插件 h...
查看>>
hibernate自定义校验Valid
查看>>
云栖社区专家直播招募,开放直播权限!
查看>>
vue组件el-dialog重新执行mounted方法的技巧
查看>>
kafka的SSL证书校验不通过
查看>>
MySQL server_id
查看>>
MySQL行锁堵塞案例
查看>>
glom模块的使用(二)
查看>>