Ich bin neu in Web Services. Ich habe unerklärlicherweise zufällige Ausführungszeiten des SoapClient-Konstruktors. Normalerweise dauert der Anruf etwa 10 Sekunden. Manchmal dauert es weniger als eine Sekunde, aber dieses Auftreten ist weniger häufig.PHP SoapClient Konstruktor sehr langsam
PHP SoapClient Constructor extremely slow
PHP: SoapClient constructor is very slow (takes 3 minutes)
Connecting to WCF Web Service is inexplicably slow
Meine Situation in den oben genannten Themen zu denen ähnlich ist, aber die in ihnen vorgesehenen Lösungen haben mein Problem nicht beheben.
// config params
$params = array(
'trace' => 1,
'soap_version' => SOAP_1_1,
'cache_wsdl' => WSDL_CACHE_MEMORY
);
// this call takes about 10 seconds to remote WSDL
$soap_client = new SoapClient(WSDL_URL,$params);
Ich habe mit den verschiedenen Wsdl Caching Parameter gespielt und fand WSDL_CACHE_MEMORY die schnellste zu sein. Bei Verwendung der anderen Caching-Optionen dauert der Anruf im Durchschnitt etwa 25 Sekunden.
Ich verwende nicht mehrere Benutzer.
Ich habe das Wsdl_cache_dir in ein Windows-freundliches Verzeichnis in php.ini geändert.
Meine Frage ist zweifach:
Warum ist der Soapclient-Konstruktor scheinbar zufällig, wie lange dauert es auszuführen? Warum dauert es normalerweise länger, aber manchmal dauert es nur einen Bruchteil einer Sekunde? Gibt es einen Test, den ich durchführen kann, um zu erfahren, warum er sich so verhält?
Sollte ich das SoapClient-Objekt oder die Ressource zwischenspeichern/speichern, damit meine Seitenbesucher nicht von Seite zu Seite wechseln müssen, muss ich keinen neuen SoapClient erstellen und die WSDL erneut analysieren? Was ist der empfohlene Ansatz, um das zu erreichen?
Jede Hilfe oder Schub in der richtigen Richtung viel verpflichtet wäre. Vielen Dank.
Ist die WSDL-Datei lokal oder remote? – datasage
@datasage Ich habe beides versucht. Zuerst lokal, dann remote. Schnellere Ausführungszeiten mit Remote. – cre8value
versuche, einen Test-Client mit soapui zu erstellen - http://www.soapui.org/ ist es auch langsam? – herrjeh42