मैं वेब सेवाओं के लिए नया हूं। मैं अनजाने में यादृच्छिक साबुन क्लाइंट कन्स्ट्रक्टर निष्पादन समय का अनुभव कर रहा हूँ। आमतौर पर कॉल में लगभग 10 सेकंड लगते हैं। कभी-कभी इसमें एक सेकंड से भी कम समय लगता है, लेकिन यह घटना कम बार-बार होती है।PHP सोप क्लाइंट कन्स्ट्रक्टर बहुत धीमा
PHP SoapClient Constructor extremely slow
PHP: SoapClient constructor is very slow (takes 3 minutes)
Connecting to WCF Web Service is inexplicably slow
मेरे स्थिति ऊपर धागे में उन लोगों के लिए समान है, लेकिन उन में प्रदान की समाधान मेरी समस्या का समाधान नहीं किया।
// 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);
मैं अलग wsdl कैशिंग मानकों के साथ खेला और WSDL_CACHE_MEMORY पाया सबसे तेजी से होने के लिए है। अन्य कैशिंग विकल्पों का उपयोग करते समय, कॉल औसत पर लगभग 25 सेकंड लेता है।
मैं एकाधिक उपयोगकर्ताओं का उपयोग नहीं कर रहा हूं।
मैंने wsdl_cache_dir को php.ini में एक विंडोज फ्रेंडली निर्देशिका में बदल दिया है।
मेरा प्रश्न है दो गुना:
क्यों SoapClient निर्माता प्रतीत होता है कि कब तक यह निष्पादित करने के लिए ले जाता है में यादृच्छिक है? यह आमतौर पर अधिक समय क्यों लेता है लेकिन फिर कभी-कभी केवल एक विभाजित दूसरा लेता है? क्या कोई परीक्षण है जो मैं यह सीखने के लिए कर सकता हूं कि यह इस तरह से क्यों व्यवहार कर रहा है?
क्या मुझे सोप क्लाइंट ऑब्जेक्ट या संसाधन को कैशिंग/सहेजना चाहिए ताकि जब मेरा पृष्ठ विज़िटर पृष्ठ से पृष्ठ पर जाएं, मुझे एक नया साबुन क्लाइंट बनाने की आवश्यकता नहीं है और फिर से WSDL को फिर से पार्स करने की आवश्यकता नहीं है? इसे पूरा करने के लिए अनुशंसित दृष्टिकोण क्या है?
सही दिशा में कोई भी मदद या झुकाव बहुत बाध्य होगा। धन्यवाद।
स्रोत के रूप में इस्तेमाल कर सकते हैं WSDL फ़ाइल स्थानीय या दूरदराज है? – datasage
@ डेटासेट मैंने दोनों की कोशिश की। स्थानीय पहले, फिर रिमोट। रिमोट के साथ तेज निष्पादन समय। – cre8value
सोपाई के साथ एक परीक्षण क्लाइंट बनाने का प्रयास करें - http://www.soapui.org/ क्या यह धीमा है? – herrjeh42