मैं वर्तमान में एक ऐसे एप्लिकेशन पर काम कर रहा हूं जो डेटा प्राप्त करने के लिए कई अलग-अलग वेब सेवाओं पर निर्भर करता है। चूंकि मैं प्रत्येक सेवा को मॉड्यूलर करना चाहता हूं और वहां थोड़ी निर्भरता है (सेवा 1 सेवा 2 और 3 आदि से पहले चलनी चाहिए), मैं प्रत्येक सेवा को अपने कार्य में चला रहा हूं।कितने कार्य बहुत अधिक हैं?
कार्यों के लिए खुद को या तो
सक्रिय रूप से चल रहा है, जिसका अर्थ है कि वे वेब सेवा करने का उनका अनुरोध प्रतिक्रिया
इंतजार कर (मॉनिटर के माध्यम से भेज रहे हैं और एक प्रतिक्रिया के लिए इंतजार कर रहे हैं या प्रसंस्करण और कर रहे हैं टाइमआउट) - एक बार जब कार्य सभी प्रतीक्षा कार्यों को समाप्त कर देता है और जांचता है कि उनकी निर्भरता
अब, सिस्टम runni है एनजी जो मैं अच्छा प्रदर्शन कहूंगा (विशेष रूप से प्रदर्शन के बजाय नगण्य है) - हालांकि, एप्लिकेशन काफी सारे कार्यों को उत्पन्न करता है।
तो, मेरे प्रश्न के लिए: इस परिदृश्य में ~ 200 कार्य हैं? क्या वे उस ऊपरी ओवरहेड उत्पन्न करते हैं ताकि मूल रूप से गैर-थ्रेडेड दृष्टिकोण बेहतर रहे?
यह शायद (1) कार्यों पर निर्भर करता है और (2) मॉड्यूल की ग्रैन्युलरिटी पर निर्भर करता है। –
कार्य अधिकतर केवल webservice को अनुरोध भेज रहे हैं, यानि बहुत ही मामूली प्रसंस्करण (फ़िल्टर ट्वीट्स) के साथ ट्विटर फ़ीड के लिए अनुरोध भेज रहे हैं। मैं प्रत्येक आइटम के लिए एक नया कार्य शुरू करता हूं, जिसका मतलब है कि लगभग 1-30 कार्य "समवर्ती" चल रहे हैं और निर्भरता की प्रतीक्षा नहीं कर रहे हैं --- आम तौर पर प्रति वेब सेवा के बारे में एक मॉड्यूल (वर्तमान में लगभग 10-15 मॉड्यूल)। – Scurals
मुझे लगता है कि व्यवहार्य होगा, क्योंकि "चलने" का मतलब केवल सर्वर की प्रतिक्रिया के लिए इंतजार कर रहा है ... –