Pregunta

Tengo un servidor de socket de chat bastante intensivo escrito en Twisted Python, lo inicio usando internet.TCPServer con una fábrica y esa fábrica hace referencia a un objeto de protocolo que maneja todas las comunicaciones con el cliente.

¿Cómo debo asegurarme de que una instancia de protocolo se destruya completamente una vez que un cliente se haya desconectado?

Tengo una función llamada connectionLost que se activa una vez que un cliente se desconecta y trato de detener toda actividad allí mismo, pero sospecho que algunas cosas del reactor (como instancias de twisted.words) siguen ejecutándose para instancias de protocolo obsoletas.

¿Cuál sería el mejor enfoque para manejar esto?

¡Gracias!

¿Fue útil?

Solución

ok, para solucionar este problema, configuré un método __del__ en la clase de protocolo y ahora estoy registrando instancias de protocolo que no se han recolectado en un minuto desde el momento en que el cliente se ha desconectado .

Si alguien tiene una solución mejor, me alegraría saberlo, pero hasta ahora he solucionado algunas posibles pérdidas de memoria con este registro.

¡Gracias!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top