4

我有一个用 Twisted Python 编写的非常密集的聊天套接字服务器,我使用带有工厂的 internet.TCPServer 启动它,并且该工厂引用处理与客户端的所有通信的协议对象。

一旦客户端断开连接,我应该如何确保协议实例完全销毁自己?

我有一个名为 connectionLost 的函数,一旦客户端断开连接,它就会启动,我尝试在那里停止所有活动,但我怀疑一些反应器的东西(如 twisted.words 实例)会继续为过时的协议实例运行。

处理这个问题的最佳方法是什么?

谢谢!

4

1 回答 1

0

好的,为了解决这个问题,我__del__在协议类中设置了一个方法,现在我正在记录从客户端断开连接后 1 分钟内没有被垃圾收集的协议实例。

如果有人有更好的解决方案,我仍然会很高兴听到它,但到目前为止,我已经使用此日志修复了一些潜在的内存泄漏。

谢谢!

于 2009-08-06T00:14:22.663 回答