缓存WSDL文件而不是在每个SOAP请求中获取它
问题描述:
我正在构建一个基本上围绕一堆SOAP命令的rails应用程序。缓存WSDL文件而不是在每个SOAP请求中获取它
每次我想要实现某种缓存方法时,我都不想获取WSDL,尽管我不太确定哪里可以开始这样做。
有什么特定的Rails,可以帮助我,或者我应该通过Ruby下载文件并加载它?只是在寻找某种大方向...
答
如果您使用savon然后remote WSDL will be downloaded once per client instance:
(远程)WSDL,必须下载并为每个客户端解析一次,因此带有性能损失
如果是过于频繁,你可以从本地文件加载WSDL:
client = Savon::Client.new do
wsdl.document = '/path/to/wsdl.xml'
end
的时刻_As这为n ow新语法_' @client = Savon.client do wsdl'/path/to/your/SoapApiService.wsdl' end' – olleh