Buenas.
Tengo un problemilla que no se a que puede deberse, a ver si alguien me
ilumina.
Estoy haciendo un framework WSGI (si, ya, otro), que todavia no esta
presentable pero ya va cogiendo forma [1]. El objetivo es crear un
paquete para utilizar Dojo Toolkit desde python, de la manera mas
sencilla posible. Hace muchos años lo hice con Dojo 0.4 y PHP, y ahora
voy a intentarlo con python y Dojo 2.0. Empece sobre webapp2, luego con
web2py, pero al final me he hecho mi propio framework sencillito, para
poder probar las cosas a mi manera, aunque al final es para que genere
javascript para otro. Uso wsgiref para servir la app, y selenium para
testear.
El problema es que al arrancar, Dojo Toolkit carga muchos archivos
javascript, y algunas veces me pasa que os.path.isfile da False sobre
archivos que si que existen, lo que hace que la página se rompa. Esto
provoca que los test fallen de vez en cuando, y es muy molesto. Puedo
evitarlo cargardo Dojo desde un CDN, pero me revienta no saber por qué pasa.
Leo por ahi que os.path no es seguro en wsgi, asi que en vez de eso voy
con un try:open, pero casca igual y de vez en cuando tampoco encuentra
el archivo. [2]
Pense que al ser multihilo, y como Dojo al arrancar lanza unas 30
peticiones a la vez, podria ser que a veces pillara el disco muy ocupado
y por eso no pudiera cargarlo, asi que me hago un Cache [3] y cargo
todos los js en memoria y asi los mando sin tocar el disco. Y sorpresa,
tambien falla, aunque ya habia cargado antes el archivo!
Siempre falla en los mismos dos archivos: dojo/dojo.js y dijit/dijit.js,
y si falla uno el otro tambien. No es extraño, ya que son los que hacen
que se carguen todos los demas.
He leido algo sobre "race condition", pero no me parece que sea mi
problema. He echado un vistazo a algunos framework y usan isfile
tranquilamente.
Y lo que pregunto es:
- A alguien se le ocurre por donde puede venir el problema?
- Que cosas no son seguras de usar en una aplicacion WSGI? Documentacion
sobre esto?
Por otro lado, si a alguien le apetece echarle un vistazo al paquete y
comentar algo, encantado de recibir sugerencias, criticas, o modulos que
me puedan ayudar en la generacion de javascript (existe algun
validador?). En Examples/TEST hay un ejemplo de como funciona.
Saludos.
[1] http://code.google.com/p/pyojo/
[2] http://www.pyojo.com/doc/_modules/pyojo.html#Request.static
[3] http://www.pyojo.com/doc/_modules/pyojo/content.html#CachedText
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/