I’ve been having major performance problems creating clients with large WSDL and XSD files. Here’s a question about caching I posted on
StackOverflow,
but never got an answer to. I think I might be misunderstanding the way suds does caching. Can anyone confirm that my thinking is wrong?
Thanks,
Mike
I'm pretty sure suds is not caching my WSDLs and XSDs like I expect it to. Here's how I know that cached objects
are not being used:
- It takes about 30 seconds to create a client: client = Client(url)
- The logger entries show consistent digestion of the XSD and WSDL files during the entire 30 seconds
- Wireshark is showing consistent TCP traffic to the server storing the XSD and WSDL files during the entire 30 seconds
- I see the files in the cache being updated each time I run my program
I have a small program that creates a suds client, sends a single request, gets the response, then ends. My expectation is that each time I run the program, it should fetch the WSDL
and XSD files from the file cache, not from the URLs. Here's why I think that:
- client.options.cache.duration is set to ('days', 1)
- client.options.cache.location is set to c:\docume~1\mlin\locals~1\temp\suds and
I see the cache files being generated and re-generated each time I run the program
- For a moment I thought that maybe the cache is not reused between runs of a program, but I don't think a file cache would be used if that were the case, because an in-memory cache would do just fine
Am I misunderstanding how suds caching is supposed to work?