Suds игнорируя настройки кэша? - PullRequest
4 голосов
/ 27 мая 2011

Я использую 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 ]

11 голосов
/ 01 июня 2011

Отвечая на мой собственный вопрос:

Это закончилось не проблемой версии, а ошибкой пользователя.К сожалению, документация 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 кеш, и, похоже, игнорирует ваши настройки.

0 голосов
/ 27 мая 2011

Проблема может заключаться в отсутствии надлежащей поддержки в типе кэша по умолчанию в Suds 0.3.8, или, возможно, даже в этой версии ошибки. Если вы сможете выполнить обновление до Suds 0.3.9 или более поздней версии (последняя версия 0.4), это позволит этому поведению работать должным образом.

...