Python 完全禁用SUDS模式缓存
我的Web服务器需要从远程SOAP服务请求数据。这种情况很少发生,所以我不希望有任何缓存。事实上,SOAP提供者有时会更改模式并向其添加新参数,因此每次我都必须下载并解析整个模式 我正在使用以下代码:Python 完全禁用SUDS模式缓存,python,caching,soap,suds,Python,Caching,Soap,Suds,我的Web服务器需要从远程SOAP服务请求数据。这种情况很少发生,所以我不希望有任何缓存。事实上,SOAP提供者有时会更改模式并向其添加新参数,因此每次我都必须下载并解析整个模式 我正在使用以下代码: url = 'http://someurl' cli = suds.client.Client(url) cli.set_options(cache=None) return cli 但这仍然有缓存。并创建/tmp/suds中的临时数据。如何完全禁用suds缓存 将cli.set\u optio
url = 'http://someurl'
cli = suds.client.Client(url)
cli.set_options(cache=None)
return cli
但这仍然有缓存。并创建/tmp/suds中的临时数据。如何完全禁用suds缓存
将
cli.set\u options
更改为.Client(url,cache=None)
是否可以解决此问题?很抱歉,我目前没有能力亲自测试这个问题。首先,这是一个有点难以确定的答案,因为有多个版本和叉的肥皂水漂浮在周围。目前,fedorahosted的版本看起来没有维护,但我已经看到其他Fork非常活跃(相比之下)
在构造函数中设置缓存选项似乎更好,因为客户端
实例化一些其他类并传递缓存选项。这意味着以后更改它可能不会对这些其他类产生影响(我没有深入了解代码以确定)
另外,禁用缓存的正确方法似乎是使用
from suds.cache import NoCache
# ...
cli = suds.client.Client(url, cache=NoCache())
因为代码的某些部分没有检查缓存==None
然而,我不能确定我上面的建议是否会禁用所有缓存,因为我在邮件列表上看到的其他帖子表明,可能很难无条件禁用所有缓存。首先,这有点难以明确回答,因为有多个版本和多个叉状的肥皂水漂浮在周围。目前,fedorahosted的版本看起来没有维护,但我已经看到其他Fork非常活跃(相比之下) 在构造函数中设置缓存选项似乎更好,因为
客户端
实例化一些其他类并传递缓存选项。这意味着以后更改它可能不会对这些其他类产生影响(我没有深入了解代码以确定)
另外,禁用缓存的正确方法似乎是使用
from suds.cache import NoCache
# ...
cli = suds.client.Client(url, cache=NoCache())
因为代码的某些部分没有检查缓存==None
但是我不能确定我上面的建议是否会禁用所有缓存,因为我在邮件列表上看到的其他帖子表明,可能很难无条件禁用所有缓存。谢谢你,菲利克斯,如果有效,我会检查并接受你的回答。顺便说一句,我用的是肥皂水0.4。它没有保养吗?如果你喜欢肥皂水,你最好的选择是。我想谷歌也会根据他们的需要使用一个改良版的肥皂水叉子。无论出于何种原因,fedorahosted suds的维护人员几年来一直处于非活动状态(我很久以前就尝试过ping他们,但没有结果)。谢谢Felix,我会检查这一点,如果有效,我会接受你的回答。顺便说一句,我用的是肥皂水0.4。它没有保养吗?如果你喜欢肥皂水,你最好的选择是。我想谷歌也会根据他们的需要使用一个改良版的肥皂水叉子。无论出于何种原因,fedorahosted suds的维护人员几年来一直处于非活动状态(我很久以前就尝试过ping它们,但没有用)。