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/

Responder a