Suds忽略缓存设置?

时间:2011-05-27 14:26:58

标签: python django caching suds

我正在使用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)

2 个答案:

答案 0 :(得分:11)

回答我自己的问题:

这最终不是版本问题,而是用户错误。不幸的是,泡沫文件并不像它可能那样清晰。阅读它,人们会认为上面的代码可以工作,但(在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缓存,而且似乎忽略了你的设置。

答案 1 :(得分:0)

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