मैंने एक साधारण लिपि लिखी, जो सेवा से डेटा पुनर्प्राप्त करने के लिए धागे का उपयोग कर रहा था।गॉट अपवाद त्रुटि "थ्रेड थ्रेड -13 में अपवाद (दुभाषिया शट डाउन के दौरान सबसे अधिक संभावना)"
__author__ = 'Igor'
import requests
import time
from multiprocessing.dummy import Pool as ThreadPool
ip_list = []
good_ip_list = []
bad_ip_list = []
progress = 0
with open('/tmp/ip.txt') as f:
ip_list = f.read().split()
def process_request(ip):
global progress
progress += 1
if progress % 10000 == 0:
print 'Processed ip:', progress, '...'
r = requests.get('http://*****/?ip='+ip, timeout=None)
if r.status_code == 200:
good_ip_list.append(ip)
elif r.status_code == 400:
bad_ip_list.append(ip)
else:
print 'Unknown http code received, aborting'
exit(1)
pool = ThreadPool(16)
try:
pool.map(process_request, ip_list)
except:
for name, ip_list in (('/tmp/out_good.txt', good_ip_list), ('/tmp/out_bad.txt', bad_ip_list)):
with open(name, 'w') as f:
for ip in ip_list:
print>>f, ip
लेकिन कुछ अनुरोध संसाधित (40k-50k) के बाद मैं प्राप्त करते हैं:
धागा धागा -7 में अपवाद (सबसे अधिक संभावना दुभाषिया शटडाउन के दौरान उठाया): Traceback (सबसे हाल कॉल पिछले): प्रक्रिया
<timeout>999</timeout>
<connectionlimit>600</connectionlimit>
<httpthreads>32</httpthreads>
<workerthreads>128</workerthreads>
लेकिन अब भी वही त्रुटि: बाहर निकलने के कोड 0
सेवा सेटिंग में बदलाव करने की कोशिश की के साथ समाप्त हो गया। क्या कोई मेरी मदद कर सकता है - क्या गलत है?
'प्रिंट> > एफ, आईपी' यह एक टाइपो है? क्या ट्रेसबैक में कुछ और है? –
'परिवर्तनीय डेटा के साथ भाषा में प्रगति + = 1' और किसी भी सुरक्षा w/o किसी भी सुरक्षा का उपयोग कर ... मैं उस बिंदु को देखना बंद कर दिया;) – iced
@ पैट्रिक कोलिन्स जैसा कि मैंने समझा - अनुरोधों में समस्या। Exceptions.ConnectionError raise, कोशिश की इसे पकड़ने और पूल.मैप जारी रखने के लिए, लेकिन उसी प्रभाव – Igor