Erlang 21

pg2




erlang

pg2

मॉड्यूल

PG2

मॉड्यूल सारांश

नामित प्रक्रिया समूह।

विवरण

यह मॉड्यूल प्रक्रिया समूहों को लागू करता है। प्रत्येक संदेश को एक, कुछ या सभी समूह सदस्यों को भेजा जा सकता है।

प्रक्रियाओं का एक समूह एक आम नाम से पहुँचा जा सकता है। उदाहरण के लिए, यदि foobar नामक एक समूह है, तो प्रक्रियाओं का एक सेट हो सकता है (जो विभिन्न नोड्स पर स्थित हो सकता है) जो समूह के सभी सदस्य हैं। समूह को संदेश भेजने के लिए कोई विशेष कार्य नहीं हैं। इसके बजाय, क्लाइंट फ़ंक्शंस को get_members/1 और get_local_members/1 फ़ंक्शन के साथ लिखा जाना है ताकि यह निर्धारित किया जा सके कि कौन सी प्रक्रियाएं समूह के सदस्य हैं। फिर संदेश को एक या अधिक समूह सदस्यों को भेजा जा सकता है।

यदि कोई सदस्य समाप्त हो जाता है, तो यह स्वचालित रूप से समूह से हटा दिया जाता है।

चेतावनी

यह मॉड्यूल वितरित डिस्क लॉग के प्रबंधन के लिए मॉड्यूल disk_log द्वारा उपयोग किया जाता है। डिस्क लॉग नामों का उपयोग समूह नामों के रूप में किया जाता है, जिसका अर्थ है कि नाम की गड़बड़ी से बचने के लिए कुछ कार्रवाई की आवश्यकता हो सकती है।

जानकारी का प्रकार

name() = any()

एक प्रक्रिया समूह का नाम।

निर्यात

create (नाम :: name() ) -> ठीक है

एक नया, खाली प्रक्रिया समूह बनाता है। यह समूह विश्व स्तर पर सभी नोड्स पर दिखाई देता है। यदि समूह मौजूद है, तो कुछ भी नहीं होता है।

हटाएं (नाम :: name() ) -> ठीक है

एक प्रक्रिया समूह हटाता है।

get_closest_pid (नाम) -> pid () | {त्रुटि, कारण}

प्रकार

एक उपयोगी प्रेषण फ़ंक्शन जो क्लाइंट फ़ंक्शन से उपयोग किया जा सकता है। यह स्थानीय नोड पर एक प्रक्रिया देता है, अगर ऐसी प्रक्रिया मौजूद है। अन्यथा, यह एक बेतरतीब ढंग से चयन करता है।

get_local_members (नाम) ->
[pid ()] | {त्रुटि, {no_such_group, नाम}}

प्रकार

समूह Name में स्थानीय नोड पर चल रही सभी प्रक्रियाओं को लौटाता है। इस फ़ंक्शन का उपयोग क्लाइंट फ़ंक्शन के भीतर किया जाता है जो समूह तक पहुंचता है। इसलिए यह गति के लिए अनुकूलित है।

get_members (नाम) -> [pid ()] | {त्रुटि, {no_such_group, नाम}}

प्रकार

समूह Name में सभी प्रक्रियाओं को लौटाता है। इस फ़ंक्शन का उपयोग क्लाइंट फ़ंक्शन के भीतर किया जाता है जो समूह तक पहुंचता है। इसलिए यह गति के लिए अनुकूलित है।

join (नाम, पिड :: pid ()) -> ok | {त्रुटि, {no_such_group, नाम}}

प्रकार

समूह Name में प्रक्रिया Pid जोड़ देता है। एक प्रक्रिया कई बार एक समूह में शामिल हो सकती है और तब समूह को उसी संख्या में छोड़ना चाहिए।

छुट्टी (नाम, पिड :: pid ()) -> ठीक | {त्रुटि, {no_such_group, नाम}}

प्रकार

प्रक्रिया बनाता है Pid समूह का Name छोड़ देता है। यदि प्रक्रिया समूह का सदस्य नहीं है, तो ok है।

start () -> {ok, pid ()} | {त्रुटि, कोई ()}

pg2 सर्वर शुरू करता है। आम तौर पर, सर्वर को स्पष्ट रूप से शुरू करने की आवश्यकता नहीं होती है, क्योंकि यह गतिशील रूप से शुरू किया जाता है अगर इसकी आवश्यकता होती है। यह विकास के दौरान उपयोगी है, लेकिन एक लक्ष्य प्रणाली में सर्वर को स्पष्ट रूप से शुरू किया जाना है। इसके लिए kernel(6) लिए कॉन्फ़िगरेशन मापदंडों का उपयोग करें।

कौन सा_ग्रुप () -> [नाम :: name() ]

सभी ज्ञात समूहों की सूची लौटाता है।

यह भी देखें

kernel(6)