2012-07-21 83 views
-1

我使用Suds進行RPC調用,並且客戶端拒絕在調用之間緩存(導致等待客戶端初始化等待30多秒)。任何人都可以看到除了下面的內容還需要做什麼才能啓用緩存?Suds沒有緩存wsdls

client = Client(WSDL_URL) 
cache = client.options.cache 
cache.setduration(days=10) 
cache.setlocation(SUDS_CACHE_LOCATION) 
+0

多大WSDL文件? – dusan 2012-07-30 20:24:14

+0

WSDL文件爲22KB(泡沫也會下載所有引用的模式,這會增加加載時間) – Taras 2012-07-31 12:41:01

+0

如果將WSDL保存到本地文件並從Suds加載它,那麼是否可以縮短加載時間? – dusan 2012-07-31 13:36:05

回答

0

這可能是庫本身的錯誤。緩存文件需要以二進制模式寫入。可固定在cache.py:)

1)在FileCache.put(,改變這一行:

f = self.open(fn, 'w') 

f = self.open(fn, 'wb') 

2)在FileCache.getf(),改變這一行:

return self.open(fn) 

return self.open(fn, 'rb') 

有關詳細信息,請參閱:

Suds is not reusing cached WSDLs and XSDs, although I expect it to