我有一个用Twisted Python编写的非常密集的聊天套接字服务器,我使用带工厂的internet.TCPServer启动它,该工厂引用一个协议对象来处理与客户端的所有通信。
一旦客户端断开连接,我应该如何确保协议实例完全破坏?
我有一个名为connectionLost的函数,一旦客户端断开连接就会被激活,我尝试在那里停止所有活动,但我怀疑一些反应堆的东西(比如twisted.words实例)继续为过时的协议实例运行。
处理此问题的最佳方法是什么?
谢谢!
答案 0 :(得分:0)
好的,为了解决这个问题,我在协议类中设置了__del__
方法,我现在正在记录从客户端断开连接后1分钟内没有被垃圾收集的协议实例。
如果有人有任何更好的解决方案,我仍然会很高兴听到它,但到目前为止,我已经使用此日志修复了一些潜在的内存泄漏。
谢谢!