2014-07-15 14 views
12

स्केपर में कुछ समवर्ती सेटिंग्स हैं, जैसे CONCURRENT_REQUESTS। क्या इसका मतलब है कि स्केपर क्रॉलर बहु-थ्रेडेड है? तो अगर मैं scrapy crawl my_crawler चलाता हूं तो यह सचमुच समानांतर अनुरोधों को समानांतर में आग लगा देगा? मैं पूछ रहा हूं क्योंकि, मैंने पढ़ा है कि स्केपर एकल-थ्रेडेड है।स्क्रैप एकल-थ्रेडेड या बहु थ्रेडेड है?

+4

स्क्रैप ट्विस्ट का उपयोग करता है, और एकल-थ्रेडेड एसिंक्रोनस प्रोग्रामिंग मॉडल का उपयोग करता है। आप इसके बारे में [in] पढ़ सकते हैं (http://krondo.com/wp-content/uploads/2009/08/twisted-intro.html) [विभिन्न] (http://krondo.com/wp-content/uploads /2009/08/twisted-intro.html) [स्थानों] (http://jessenoller.com/blog/2009/02/11/twisted-hello-asynchronous-programming) –

उत्तर

8

इंटरैक्टिव खोल और कुछ परीक्षणों को छोड़कर, स्केपर एकल-थ्रेडेड है, source देखें।

यह Twisted के शीर्ष है, जो एकल पिरोया भी है, और यह की अपनी अतुल्यकालिक संगामिति क्षमताओं का उपयोग करता है पर बनाया गया है, इस तरह के twisted.internet.interfaces.IReactorThreads.callFromThread के रूप में, source देखते हैं।

+3

तब इन सेटिंग्स का बिंदु क्या है? –

+1

Asynchronicity का मतलब है कि कई समवर्ती अनुरोध हो सकते हैं। आप एक अनुरोध ए भेज सकते हैं, और इसे वापस करने से पहले आप एक और अनुरोध बी बना सकते हैं, इसलिए आपके पास दो समांतर अनुरोध हैं। –

+0

मैं अपने स्क्रैपिंग के परिणामों को एक पाठ फ़ाइल में लिखने की कोशिश कर रहा था। मुझे पता है कि यह एक बुरी चीज है ... या है ना? – deostroll

4

स्क्रैप इसके अधिकांश काम सिंक्रनाइज़ करता है। हालांकि, अनुरोधों का संचालन असीमित रूप से किया जाता है।

यदि आप इसे पहले से नहीं देख चुके हैं तो मैं इस पृष्ठ का सुझाव देता हूं।

http://doc.scrapy.org/en/latest/topics/architecture.html

संपादित करें: मैं अब एहसास सवाल और सूत्रण के बारे में था यह अतुल्यकालिक है या नहीं जरूरी नहीं है कि क्या। हालांकि यह लिंक अभी भी एक अच्छा पठन होगा :)

CONCURRENT_REQUESTS के बारे में आपके प्रश्न के बारे में। यह सेटिंग एक बार में स्थगित अनुरोधों की संख्या को बदल देती है। एक बार जब कई अनुरोध शुरू हो गए हैं तो यह कुछ शुरू करने से पहले खत्म होने के लिए इंतजार करेगा।

1

स्क्रैप एकल थ्रेडेड फ्रेमवर्क है, हम एक ही समय में एक मकड़ी के भीतर कई धागे का उपयोग नहीं कर सकते हैं। हालांकि, प्रक्रिया को समवर्ती बनाने के लिए हम एक साथ कई मकड़ियों और पाइप्लिन बना सकते हैं। स्केपर multi-threading का समर्थन नहीं करता है क्योंकि यह Twisted पर बनाया गया है, जो Asynchronous http protocol framework है।

संबंधित मुद्दे