2012-11-24 12 views
16

मुझे नौकरी कतार प्रबंधक की आवश्यकता है जिसे मैं इंटरनेट पर नियंत्रित कर सकता हूं। यह प्रक्रियाओं को निष्पादित करने और रोकने में सक्षम होना चाहिए, उनकी स्थिति की जांच करें (आदर्श रूप से नोटिस करें और प्रक्रिया समाप्त होने पर कुछ कोड निष्पादित करें), आदेशों का जवाब दें और सर्वर पर वापस रिपोर्ट करने में भी सक्षम होना चाहिए।आरपीसी इंटरफेस के साथ जॉब कतार प्रबंधक

पृष्ठभूमि: मेरे पास एक जीडब्ल्यूटी एप्लीकेशन है जो क्लाउड इंस्टेंस (वर्तमान में ईसी 2) पर निष्पादित करने के लिए नौकरियां बनाने की अनुमति देता है। मैं एस 3 पर "जॉब पैकेट" (आदि पर काम करने की प्रक्रिया के लिए डेटा) को धक्का देना चाहता हूं, एक लिनक्स ईसी 2 इंस्टेंस (या पहले से चल रहा है) का उपयोग करें, और उस नौकरी को निष्पादित करने के लिए उदाहरण पर जॉब मैनेजर को बताएं (संभवतः अन्य नौकरियों के समानांतर)। इसके बाद इसे S3 से "जॉब पैकेट" खींचना चाहिए, उस प्रक्रिया पर चलने वाली प्रक्रिया चलाएं और कुछ जानकारी के साथ मेरे जीडब्ल्यूटी एप्लिकेशन के सर्वर भाग को चलाने वाले सर्वर पर रिपोर्ट करें (जैसे निकास कोड, stdout, stderr)। अगर मुझे लिखना है उदा। प्रक्रिया से फ़ाइल में stdour/गलती करें और उस फ़ाइल को पढ़ें, यह भी ठीक है।

मैं वास्तव में प्रबंधक को चलने वाली प्रक्रियाओं के लिए "करीबी" होना पसंद करूंगा, जिसका अर्थ है कि मैं जेडीके से Runtime.exec जैसे कुछ का उपयोग करना टालना चाहता हूं। ऐसा लगता है कि अगर मैं उदाहरण के लिए क्वार्ट्ज का इस्तेमाल करता हूं तो मुझे ऐसा करना होगा।

मैं दोनों दिशाओं में कॉल के साथ अतुल्यकालिक हूं। मैं कॉल के लिए किसी भी उचित तकनीक के साथ ठीक हूं जब तक कि मैं अपने जीडब्ल्यूटी सर्वर पक्ष में आसानी से एक इंटरफ़ेस बना सकता हूं (उदा। एसएसएल पर सर्वलेट के लिए HTTP अनुरोध अच्छा और छोटा होगा)।

नौकरी प्रबंधक को एक बहुत ही परिष्कृत क्यूइंग प्रणाली की आवश्यकता नहीं है। अनुक्रमिक रूप से या समानांतर में कई प्रक्रियाओं को चलाना ठीक होना चाहिए। यह निर्धारित करना कि उसके जीवनकाल के दौरान प्राप्त प्रक्रिया कितनी गणना होगी (AFAIK, यह चुनौतीपूर्ण हो सकता है)।

मुझे अभी तक कोई मौजूदा सॉफ़्टवेयर नहीं मिला है, जिसमें http://java-source.net/open-source/job-schedulers शामिल है। मुझे संदेह है कि मुझे एक नौकरी प्रबंधक के आसपास एक आरपीसी इंटरफ़ेस (प्रमाणीकरण आदि के साथ) बनाना पड़ सकता है; शायद Apache Commons Exec जैसे कुछ का उपयोग करें। उस स्थिति में, मैं नौकरी प्रबंधक भाग के लिए जावा या पायथन पसंद करूंगा।

मुझे पूर्व या बाद के परिदृश्य के लिए सुझाव सुनने में खुशी होगी!

+2

यह एक बहुत ही विशिष्ट विशिष्ट कल्पना है, जिसमें कोई सवाल नहीं है। एक सामान्य समाधान जो इसे बनाता है उसे क्वार्ट्ज/जीएई/इत्यादि के साथ-साथ लॉगिंग/स्टडआउट और गलती के साथ काम करने के लिए अमूर्तता की बहुत आवश्यकता होगी, यह उल्लेख न करें कि नौकरियां कैसे शुरू की जाती हैं (निर्भरता इंजेक्शन? कक्षा.न्यू इंस्टेंस()?), नौकरियां कैसे संग्रहीत की जाती हैं (आपका केस एस 3 के लिए कॉल करता है, लेकिन जीएई का डेटास्टोर, एसक्यूएल, आदि सभी 'सामान्य' समाधान के लिए उचित हैं)। –

+0

उत्तर के लिए धन्यवाद। मैं मुख्य रूप से एक पुस्तकालय के लिए सुझाव ढूंढ रहा हूं जो नौकरी/प्रक्रिया कतार और प्रबंधन प्रदान करता है जिसे मैं आरपीसी/आरएमआई/...चारों ओर परत करें ताकि मैं अपने जीडब्ल्यूटी एप्लिकेशन के सर्वर और सर्वर के बीच संदेश भेज सकूं, या एक पूर्ण समाधान जो ऐसा कर सकता है। जॉब्स को लिनक्स मशीन पर प्रक्रियाओं के रूप में चलाया जाएगा - मुझे केवल प्रक्रिया को खत्म होने पर कम से कम जानने का एक अच्छा तरीका चाहिए, और आदर्श रूप से इसकी गणना समय के बारे में पता लगाना, शायद प्रक्रियाओं की कतारबद्ध करना। डेटा को कैसे और कहाँ स्टोर करना है, मेरी राय में (मुझे यह कैसे करना है इसका एक अच्छा विचार है)। – admr

+0

क्वार्ट्ज ईसी 2 पर चलता है? – Peter

उत्तर

0

आपके प्रश्न बहुत स्पष्ट नहीं हैं।

  • तुम सिर्फ एक काम कतार चाहते हैं, तो
  • आप नौकरी और लॉगिंग परिणामों को चलाने के लिए एक सामान्य रूपरेखा चाहते हैं, Rundeck
  • देखो उन लोगों में से एक लाख (SQS, AMPQ, Redis, इत्यादि)
  • यदि आप विज्ञापन-कार्य नौकरी नियंत्रण चाहते हैं, तो बस tmux का उपयोग करें और इसे एसएसएच और/या सीजीआई स्क्रिप्ट के माध्यम से स्क्रिप्ट करें।

लेकिन वास्तव में, मुझे यकीन नहीं है कि एक 'जेनेरिक' घटक है जो आप वही करेंगे जो आप चाहते हैं। बस अपने पसंदीदा ढांचे को फायर करें और अपनी पसंदीदा भाषा से सिस्को पर पढ़ें। यदि आप यूनिक्स दर्शन सीखते हैं तो आप किसी भी भाषा से किसी भी ऑपरेशन (रन प्रोसेस, सिग्नल प्रोसेस को रोक/मारने) कर सकते हैं। हो सकता है कि चल रहे नौकरियों का डेटाबेस संग्रहीत करें, आदि

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