Tipos protegidos para acceso a ficheros

Chema Cortes py en ls-l.org
Vie Ago 19 10:36:06 CEST 2005


Javierin escribió:
> El jue, 18-08-2005 a las 10:36 +0200, Chema Cortes escribió: 
> 
>>Lo que no entiendo es para qué necesitas guardar cookies en ficheros si
>>tienes la opción de trabajar con postgresql. De paso resolverías todos
>>los problemas con los bloqueos.
>>
> 
> Lo había pensado al principio pero al final me decidí por los ficheros,
> que es lo normal no¿? De todas formas pensé en utilizar la base de datos
> que manejo pero se me ocurrían más o menos los mismos problemas de
> concurrencia... quitar, insertar nuevas filas... accesos... 
> Qué opción creéis que es la mejor¿?

Para guardar las cookies en el cliente lo normal es guardarlas en
ficheros; pero en el servidor veo que se utiliza mucho las bases de
datos, incluso para guardar las variables de sesión.

En cuanto a los problemas de bloqueo, no tengo claro qué es lo que ves
problemático (igual es que no tengo una visión clara de lo que quieres),
pero SGBDs están pensados para accesos concurrentes, y ofrecen sistemas
de bloqueos bastante selectivos con los que establecer diversas estrategias.


>>Si fuera posible hacer que el CGIHTTPServer utilice la clase
>>ThreadingTCPServer tendrías todo solucionado.
>>
>>No lo he probado, pero debería funcionar algo así:
>>
>>from SocketServer import ThreadingMixIn
>>import BaseHTTPServer
>>
>>class ThreadingHTTPServer(ThreadingMixIn, BaseHTTPServer.HTTPServer):
>>  pass
>>
> 
> Hmmm... tiene buena pinta. Tengo una clase declarada así:
> 
> class ServidorPracticas(CGIHTTPRequestHandler)
> 
> Y aquí defino todo lo que ponía antes de comprobar las peticiones: si
> path = /subir -> hacer operación de mostrar formulario...
> y todo eso.
> 
> Así que puede ser que valga:
> 
> class ThreadingHTTPServer(ThreadingMixIn, ServidorPracticas)¿?

No confundas el HTTPServer, que es el que hay que convertir para
multitarea, con el HTTPRequestHandler, del que se crea una instancia por
petición al servidor.




Más información sobre la lista de distribución Python-es