【发布时间】:2011-05-17 23:15:28
【问题描述】:
我很确定 suds 没有缓存我的 WSDL 和 XSD like I expect it to。以下是我知道没有使用缓存对象的方法:
- 创建客户端大约需要30秒:
client = Client(url) - 记录器条目显示在整个 30 秒内对 XSD 和 WSDL 文件的一致消化
- Wireshark 在整个 30 秒内向存储 XSD 和 WSDL 文件的服务器显示一致的 TCP 流量
- 我看到每次运行程序时缓存中的文件都会更新
我有一个小程序,它创建一个 suds 客户端,发送一个请求,获取响应,然后结束。我的期望是每次我运行程序时,它都应该从文件缓存中获取 WSDL 和 XSD 文件,而不是从 URL 中获取。这就是我认为的原因:
-
client.options.cache.duration设置为('days', 1) -
client.options.cache.location设置为c:\docume~1\mlin\locals~1\temp\suds,我看到每次运行程序时都会生成和重新生成缓存文件 - 有一刻我认为缓存可能不会在程序运行之间重用,但我认为如果是这种情况不会使用文件缓存,因为内存中的缓存就可以了
我是否误解了 suds 缓存应该如何工作?
【问题讨论】:
-
当我将此 WSDL 和 XSD 复制到本地文件系统时,从那里加载只需要大约 3 秒。考虑到这个 Web 服务定义的小规模,仍然太慢了。我有一项 Web 服务需要 2 分钟以上才能从本地文件系统加载 suds。您不想知道从 URL 加载需要多长时间!
标签: suds