मेरे पास एक पायथन स्क्रिप्ट है जो urllib2 का उपयोग करके यूआरएल अनुरोध करता है। मेरे पास 5 प्रक्रियाओं का एक पूल है जो असीमित रूप से चलाता है और एक फ़ंक्शन करता है। यह फ़ंक्शन वह है जो यूआरएल कॉल करता है, डेटा प्राप्त करता है, इसे आवश्यक प्रारूप में पार्स करता है, गणना करता है और डेटा सम्मिलित करता है। प्रत्येक यूआरएल अनुरोध के लिए डेटा की मात्रा भिन्न होती है।मॉनिटर स्टक पाइथन प्रक्रिया
मैं क्रॉन नौकरी का उपयोग करके हर 5 मिनट में इस स्क्रिप्ट को चलाता हूं। कभी-कभी जब मैं ps -ef | grep python
करता हूं, तो मुझे अटक प्रक्रियाएं दिखाई देती हैं। क्या कोई तरीका है जहां मैं मल्टीप्रोसेसिंग कक्षा के भीतर प्रक्रियाओं का ट्रैक रख सकता हूं जो प्रक्रियाओं का ट्रैक रख सकता है, उनका राज्य अर्थ पूरा हो गया है, फंस गया है या मर चुका है?
मैं कैसे फोन async प्रक्रियाओं
pool = Pool(processes=5)
pool.apply_async(getData,)
यह है और निम्नलिखित GetData का एक हिस्सा है जो urllib2 अनुरोध करता है: कोड स्निपेट है
try:
Url = "http://gotodatasite.com"
data = urllib2.urlopen(Url).read().split('\n')
except URLError, e:
print "Error:",e.code
print e.reason
sys.exit(0)
वहाँ पर नज़र रखने के लिए एक रास्ता है प्रक्रियाओं को अटक गया और फिर से दोबारा शुरू किया?
"अटक गया?" क्या आप इसका अर्थ समझ सकते हैं? –
आपको उन्हें 'मल्टीप्रोसेसिंग' के साथ चलाने की आवश्यकता क्यों है? एकाधिक क्रॉन नौकरियों का उपयोग करने में क्या गलत है? –
@ एंड्रयू: अटक गया मेरा मतलब है लटका प्रक्रिया। – ash