2011-02-09 17 views
5

"कार्यकर्ता" डिजाइन पैटर्न क्या है?कर्मचारी डिजाइन पैटर्न

+1

आप मास्टर/कार्यकर्ता पैटर्न मतलब है? –

+0

जब मैं "कार्यकर्ता" के बारे में सोचता हूं तो मैं "नौकरियों" के बारे में सोचने में मदद नहीं कर सकता - श्रमिक नौकरियां करते हैं।श्रमिक नौकरियों की कतार/प्रेषण को संभालते हैं, और नौकरियां काम की अलग-अलग इकाइयां हैं, संभावित रूप से "दोहराने योग्य" जैसे कुछ राज्यों के साथ –

उत्तर

7

यह हो सकता है कि आप worker thread pattern के बाद हों, जहां आप कार्यकर्ता थ्रेड द्वारा "ऑफलाइन" संसाधित किए जाने वाले कार्यों को शेड्यूल करने के लिए कतार का उपयोग करते हैं। कुछ समाधान पैरालाइज़ेशन का उपयोग करके प्रदर्शन लाभ प्राप्त करने के लिए एकल धागे के बजाय pool of worker threads का उपयोग करेंगे।

+6

पहला लिंक मर चुका है:/ – Dan

+0

जैप, 404 फेंकता है :( –

2

कुछ MapReduce जैसे कुछ दिमाग में आता है। जहां वर्कर नोड्स पर समानांतर में कई कार्य किए जा सकते हैं।

संपादित करें: जैसा कि @ लार्समैन ने उल्लेख किया है, इसे Master/Worker पैटर्न के रूप में जाना जाता है।

+0

मृत लिंक https://docs.gigaspaces.com/sbp/master-worker-pattern आज़माएं। एचटीएमएल – wmitchell

8

कार्यकर्ता डिज़ाइन पैटर्न

समस्या:

  • आप एक छोटी सी वस्तु जो डेटा और संचालन के बड़े सेट जो उस वस्तु
  • आप चाहते करने के लिए किया जा सकता है है ऑब्जेक्ट की विधि सूची को छोटे रखने के लिए
  • ऑपरेशन अलग-अलग तरीकों से किया जा सकता है, जिसमें भिन्नताएं शामिल हैं ईएनटी कार्यान्वयन
  • आपका छोटी सी वस्तु केवल जानता पढ़ सकते हैं और छोटी वस्तुओं

समाधान के एक नंबर डेटा अमूर्त परत बैच प्रक्रिया को

  • आप चाहते से खुद को बचाने के लिए कैसे:

    • आपके पास एक कार्यकर्ता इंटरफ़ेस है जो कार्यकर्ता के लिए एक्सेसर API को परिभाषित करता है और विषयों को कैसे जोड़ सकता है
    • आप विषय
    • आपका कार्यकर्ता है परिवर्तन, अपने विषय तब्दील हो जाता है
    • आपका विषय रखा है हल्के वजन प्रति कई कार्यकर्ताओं हो सकता है

    उदाहरण:

    आपका ImageBinary वस्तु का प्रतिनिधित्व करता है छवि बाइनरी ऊंचाई और चौड़ाई सहित (मेटाडेटा decoupled है)। आप इस ऑब्जेक्ट पर आकार बदलने, क्रॉपिंग, स्केलिंग जैसे विभिन्न संचालन करते हैं।

    $image1 = new ImageBinary(array(‘id’ => 1)); 
    $image2 = new ImageBinary(array(‘id’ => 2)); 
    $image3 = new ImageBinary(array(‘id’ => 3)); 
    
    $worker = new ImageWorker;$worker->add($image1);$worker->add($image2);$worker->add($image3);$worker->rotate(90); 
    

    संबंधित पैटर्न

    • प्रबंधक
    • एडाप्टर
  • संबंधित मुद्दे