मैं HTTP के माध्यम से एक एसओएलआर इंडेक्स में दस्तावेज़ जोड़ने के लिए एक साधारण PHP लाइब्रेरी का उपयोग कर रहा हूं।PHP कर्ल लाइब्रेरी के साथ लगातार/रखरखाव HTTP?
3 सर्वर शामिल है, वर्तमान में कर रहे हैं:
- पीएचपी बॉक्स अनुक्रमण काम
- एक डेटाबेस बॉक्स डेटा पकड़े
- Solr बॉक्स अनुक्रमणिका में शामिल होने चल रहा है।
80 दस्तावेजों पर/सेक (1 मिलियन डॉक्स से बाहर), मैं PHP और Solr बक्से पर नेटवर्क इंटरफेस पर एक असामान्य रूप से उच्च बाधा दर (2000/सेक देख रहा हूँ, क्या अधिक है, रेखांकन लगभग हैं समान - जब PHP बॉक्स स्पाइक्स पर बाधा दर, यह सोलर बॉक्स पर भी स्पाइक्स), लेकिन डेटाबेस बॉक्स (300/सेकंड) पर बहुत कम है। मुझे लगता है कि यह बस इसलिए है क्योंकि मैं डेटाबेस सर्वर से एक कनेक्शन खोलता हूं और पुन: उपयोग करता हूं, लेकिन प्रत्येक एकल सोलर अनुरोध वर्तमान में कर्ल के माध्यम से एक नया HTTP कनेक्शन खोल रहा है, जिस तरह से सौर क्लाइंट लाइब्रेरी लिखी गई है।
तो, मेरे सवाल यह है:
- कर्ल एक keepalive सत्र खोलने के लिए बनाया जा सकता है?
- कनेक्शन का पुन: उपयोग करने में क्या लगता है? - क्या यह कर्ल हैंडल संसाधन का पुन: उपयोग करने के समान सरल है?
- क्या मुझे कोई विशेष कर्ल विकल्प सेट करने की आवश्यकता है? (उदाहरण के लिए बल HTTP 1.1?)
- क्या कर्ल रखरखाव कनेक्शन के साथ कोई गठिया है? यह स्क्रिप्ट एक समय में घंटों तक चलता है; क्या मैं एक कनेक्शन का उपयोग करने में सक्षम हूं, या मुझे आवधिक रूप से फिर से कनेक्ट करने की आवश्यकता होगी?
खैर मैं का उपयोग किया है डी जहां हम कई सारे पृष्ठों के साथ एक पूरी साइट को पार्स कर रहे थे जिसके लिए प्रमाणीकरण की आवश्यकता थी और पूरे सत्र में बनाए रखा गया था। इनियल हैंडल संसाधन का उपयोग करके आप पेज प्राप्त करने और क्लाइंट के साथ समान सत्र और कनेक्शन बनाए रखने के लिए आदेश निष्पादित करना जारी रख सकते हैं। कमांड लाइन का उपयोग करना यह लगभग 20 मिनट तक चला गया है (हमारी सभी डेटा आवश्यकताओं के लिए - इसलिए लंबे समय तक टिक सकता है) बिना दोबारा जुड़ने की आवश्यकता के। लेकिन मुझे यकीन नहीं है कि अगर आप यही पूछ रहे हैं तो यह एक टिप्पणी है और जवाब नहीं है :) –
एक और नोट, अक्सर ऐसे विकल्प होते हैं जिन्हें आप जो कर रहे हैं उसके आधार पर सेट करने की आवश्यकता होगी और जिस सर्वर पर आप हैं को जोड़ रहा। यह सब यहां अच्छी तरह से प्रलेखित है: http://uk3.php.net/manual/en/function.curl-setopt.php –
अक्सर पूछे जाने वाले प्रश्नों का यह हिस्सा प्रासंगिक है, हालांकि बहुत विस्तृत नहीं है: http: //curl.haxx .se/docs/faq.html # Can_I_perform_multiple_requests –