2010-08-20 26 views
3

J'utilise Suds pour envoyer/recevoir des messages SOAP en Python. Cela prend énormément de temps pour créer un objet à envoyer via l'enveloppe de savon.Performance de Suds - client.factory.create() prend plus de 2 minutes

client = Client(wsdldict['Contact'], faults=True, headers=session) #takes ~5 seconds 
lq1=client.factory.create("ns1:ListOfContactQuery") #takes ~130 seconds 

Le fichier WSDL est assez grand (1MB) mais je ne sais pas si c'est la question ou non. Est-ce que les performances de Suds se dégradent à un certain point?

Répondre

6

Les performances SUDS ne se décomposent pas sur les gros fichiers WSDL. J'ai déjà vécu la même chose avec l'API Citrix NetScaler SOAP. Si vous pouvez filtrer votre WSDL dans un sous-ensemble de commandes requises, stocker le fichier sur le disque et le charger localement, ou utiliser la fonctionnalité de mise en cache de SUDS, vous pouvez augmenter considérablement ce temps de traitement lors de la création d'un nouveau client .

+0

BOOYAH! J'utilisais en fait une ancienne version de Suds qui n'avait pas encore de cache. J'ai amélioré et c'est beaucoup plus rapide. Merci! – JiminyCricket

+0

De rien. J'ai ressenti cette douleur auparavant, donc je suis content d'avoir pu atténuer la même chose pour vous. – jathanism

+0

Je suis impatient d'augmenter considérablement mon temps de traitement! – joeforker