2013-12-16 4 views
5

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

उत्तर

4

मेसोस लाइब्रेरी और निष्पादक इंटरफेस/कॉलबैक के खिलाफ निष्पादक निष्पादन योग्य लिंक आपके लिए अधिसूचित होने का एकमात्र तरीका है जब पंजीकरण, पुनर्वितरण और डिस्कनेक्ट जैसी घटनाएं दास में होती हैं या जब लॉन्च टास्क या हत्या टास्क अनुरोध आपके ढांचे द्वारा जारी किए जाते हैं ।

यह दो टुकड़ों (जैसे ढांचे की तरह) में तारित है, जिसमें एक एक्जिक्यूटिव ड्रायवर और आपके निष्पादक कार्यान्वयन शामिल है।

यदि आप मेसो/execor.hpp पर एक नज़र डालें, तो आप देखेंगे कि निर्माता को निष्पादक को एक सूचक की आवश्यकता है। उदाहरण के लिए

class MyExecutor : public Executor { 
    /* Implement registered, reregistered, ... */ 
} 

MesosExecutorDriver* driver = new MesosExecutorDriver(new MyExecutor()); 
driver->run(); 
// As long as the executor is running, the callbacks in MyExecutor will 
// be invoked by the mesos slave when events and requests are received. 

विभिन्न कॉलबैक आपको आवश्यक प्रोटोकॉल बफर (मेसोस.प्रोटो में परिभाषित) प्रदान करेंगे। लॉन्च टास्क में टास्कइन्फो, killTask ​​में टास्क आईडी और इसी तरह।

जब यह ढांचे की ओर जाता है और आप अपना स्वयं का निष्पादक पंजीकृत करना चाहते हैं, तो https://github.com/mesosphere/mesos-go/blob/master/src/mesos.apache.org/example_framework/main.go पर एक नज़र डालने का प्रयास करें।

उम्मीद है कि इससे मदद मिलती है और मुझे बताएं कि मुझे उपरोक्त में से किसी एक पर विस्तार करने की आवश्यकता है या नहीं।

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