Estoy bastante seguro de que la espuma no está almacenando en caché mis WSDL y XSDs like I expect it to. Aquí es cómo sé que no están siendo utilizados los objetos almacenados en caché:Suds no está reutilizando WSDL y XSD almacenados en caché, aunque lo espero
- Se tarda unos 30 segundos para crear un cliente:
client = Client(url)
- Las entradas del registrador muestran la digestión coherente de los archivos XSD y WSDL durante todos los 30 segundos
- Wireshark está mostrando el tráfico TCP coherente con el servidor de almacenamiento de los archivos XSD y WSDL durante todo el segundo 30
- veo los archivos de la memoria caché se actualiza cada vez que corro mi programa
Tengo un pequeño programa que crea un cliente de espuma, envía una sola solicitud, obtiene la respuesta y luego finaliza. Mi expectativa es que cada vez que ejecute el programa, debe buscar los archivos WSDL y XSD de la memoria caché de archivos, no de las URL. He aquí por qué creo que:
client.options.cache.duration
se establece en('days', 1)
client.options.cache.location
se establece enc:\docume~1\mlin\locals~1\temp\suds
y veo los archivos de caché que se generan y se re-genera cada vez que ejecute el programa- Por un momento me pensó que tal vez el caché no se vuelve a utilizar entre ejecuciones de un programa, pero no creo que una caché de archivos se utilizaría si ese fuera el caso, debido a que una en memoria caché podría hacer muy bien
¿Entiendo mal cómo se supone que funciona el almacenamiento en caché?
Cuando copié los WSDL y XSD para esto en el sistema de archivos local, solo me llevó unos 3 segundos cargar desde allí. Todavía es demasiado lento teniendo en cuenta el pequeño tamaño de esta definición de servicio web. Tengo un servicio web que toma más de 2 minutos para que la espuma se cargue desde el sistema de archivos local. ¡No quiere saber cuánto tiempo lleva cargar las URL! –