के साथ getaddrinfo त्रुटि मैंने एक स्क्रिप्ट लिखी है जो हमारे डेटाबेस में सभी ग्राहकों के माध्यम से जाएगी, सत्यापित करें कि उनकी वेबसाइट यूआरएल काम करता है, और अपने होमपेज पर एक ट्विटर लिंक खोजने का प्रयास करें। सत्यापित करने के लिए हमारे पास 10,000 से अधिक यूआरएल हैं। यूआरएल सत्यापित होने के कुछ अंश के बाद, हम प्रत्येक यूआरएल के लिए getaddrinfo त्रुटियां प्राप्त करना शुरू करते हैं।मैकेनाइज
def scrape_url(url)
url_found = false
twitter_name = nil
begin
agent = Mechanize.new do |a|
a.follow_meta_refresh = true
end
agent.get(normalize_url(url)) do |page|
url_found = true
twitter_name = find_twitter_name(page)
end
@err << "[#{@current_record}] SUCCESS\n"
rescue Exception => e
@err << "[#{@current_record}] ERROR (#{url}): "
@err << e.message
@err << "\n"
end
[url_found, twitter_name]
end
नोट::
यहाँ कोड है कि आप एक ही URL scrapes की एक प्रति है मैं भी इस कोड है कि एक ही मशीनीकरण उदाहरण भर में सभी scrape_url करने के लिए कॉल साझा हो रही है कि बनाता है की एक संस्करण को चलाने गए हैं। यह बिल्कुल वही फैशन में विफल रहा।
जब मैं EC2 पर इस चलाने के लिए, यह लगभग ठीक 1,000 यूआरएल के माध्यम से हो जाता है, तो के लिए शेष 9,000+ इस त्रुटि देता है:
getaddrinfo: Temporary failure in name resolution
ध्यान दें, मैं दोनों अमेज़न के DNS सर्वरों और गूगल के DNS का उपयोग की कोशिश की है सर्वर, सोच रहा है कि यह एक वैध DNS मुद्दा हो सकता है। मुझे दोनों मामलों में बिल्कुल वही परिणाम मिला।
फिर, मैंने इसे अपने स्थानीय मैकबुक प्रो पर चलाने की कोशिश की।
getaddrinfo: nodename nor servname provided, or not known
किसी को भी पता है कि कैसे मैं स्क्रिप्ट रिकॉर्ड सभी के माध्यम से इसे बनाने के लिए प्राप्त कर सकते हैं: यह केवल रिकॉर्ड के शेष के लिए इस त्रुटि लौटने से पहले लगभग 250 के माध्यम से मिल गया?
हमें दिखाएं कि यह यूआरएल असफल रहा है। – pguardiario
यह उनमें से लगभग 9, 000 में विफल रहता है। एक उदाहरण http://www.agilecommerce.com है। ब्राउज़र में प्लग इन होने पर यूआरएल काम करता है। – EricM
क्या आप स्मृति से बाहर हो सकते हैं? – pguardiario