4

我正在使用 suds 0.3.8、Python 2.4.3 和 Django 1.1.1。我继承的代码对缓存文件有很长的持续时间,但它的默认节奏是每 24 小时一次。托管模式的外部服务器参差不齐,因此该站点每晚都会出现故障,而我已经走到了尽头。

知道这段代码中包含了什么吗?

imp = Import('http://domain2.com/url')
imp.filter.add('http://domain3.com/url')
imp.filter.add('http://domain4.com/url')
imp.filter.add('http://domain5.com/url')
d = ImportDoctor(imp)

url = "http://domain.com/wsdl"
client = Client(url, doctor=d, timeout=30)
clientcache = client.options.cache
clientcache.setduration(days=360)
4

2 回答 2

11

回答我自己的问题:

这最终不是版本问题,而是用户错误。不幸的是,suds 文档并不像它可能的那样清楚。阅读它,人们会认为上面的代码可以工作,但是(在 suds v0.39+ 上)它应该写成:

imp = Import('http://domain2.com/url')
imp.filter.add('http://domain3.com/url')
imp.filter.add('http://domain4.com/url')
imp.filter.add('http://domain5.com/url')
d = ImportDoctor(imp)

oc = ObjectCache()
oc.setduration(days=360)

url = "http://domain.com/wsdl"
client = Client(url, doctor=d, cache=oc, timeout=30)

现在来看,在客户端初始化之前必须配置缓存是完全有道理的。

希望这会帮助其他尝试设置 suds 缓存的人,它似乎忽略了您的设置。

于 2011-06-01T15:26:28.377 回答
0

问题可能是 Suds 0.3.8 中的默认缓存类型缺乏适当的支持,甚至可能是此版本中的错误。如果您能够升级到 Suds 0.3.9 或更高版本(最新版本为 0.4),则此行为将按预期工作。

于 2011-05-27T17:28:27.777 回答