वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग · पाठ

समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न

प्रक्रियाएँ शुरू करके और संदेश प्राप्त करके सरल समवर्ती ऐप्लिकेशन बनाएँ तथा क्लाइंट-सर्वर संवाद जैसे बुनियादी पैटर्न का अन्वेषण करें

पाठ 3, कुल 4 में से11 चरण

समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न, CoddyKit पर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Erlang में समवर्तीता के पैटर्न

समवर्तीता के पैटर्न प्रक्रियाओं की परस्पर क्रिया को व्यवस्थित करने के सिद्ध तरीके हैं, ताकि आप मजबूत और पूर्वानुमेय समवर्ती ऐप्लिकेशन बना सकें।

अनुरोध-उत्तर पैटर्न

अनुरोध-उत्तर पैटर्न एक वार्तालाप है: क्लाइंट अनुरोध भेजता है, सर्वर काम करता है और फिर उत्तर देता है। यह इंटरैक्टिव सेवाओं की रीढ़ है।

सरल सर्वर बनाना

एक सर्वर प्रक्रिया receive पर लूप चलाती है, हर संदेश को संभालती है और SenderPid ! Reply से उत्तर देती है; self() उसे उसका अपना PID देता है।

कोड: इको सर्वर का उदाहरण

यह इको सर्वर कोई भी संदेश प्राप्त करता है, भेजने वाले का PID निकालता है और संदेश को इको के रूप में चिह्नित करके उसी को वापस भेज देता है।

-module(echo_server).
-export([start/0, loop/0]).

start() ->
    spawn(echo_server, loop, []).

loop() ->
    receive
        {FromPid, Message} ->
            FromPid ! {self(), echoed, Message},
            loop();
        _ ->
            io:format("Server received unknown message.~n"),
            loop()
    end.

कोड: इको क्लाइंट की परस्पर क्रिया

संबंधित इको क्लाइंट सर्वर को शुरू करता है और {self(), msg} भेजता है, ताकि सर्वर को पता हो कि उत्तर कहाँ भेजना है; फिर वह उत्तर की प्रतीक्षा करता है।

-module(echo_client).
-export([run/0]).

run() ->
    ServerPid = echo_server:start(),
    io:format("Server started with PID: ~p~n", [ServerPid]),

    Request = "Hello Erlang!",
    ServerPid ! {self(), Request},
    io:format("Client sent: ~p to server ~p~n", [Request, ServerPid]),

    receive
        {_ServerPid, echoed, Response} ->
            io:format("Client received reply: ~p~n", [Response]);
        _ ->
            io:format("Client received unexpected message.~n")
    after 5000 ->
        io:format("Client timed out waiting for reply.~n")
    end.

इको प्रणाली चलाना

इसे चलाने के लिए दोनों मॉड्यूल संकलित करें और शेल में echo_client:run() चलाएँ — यह दो प्रक्रियाओं के बीच पूरा अनुरोध-उत्तर चक्र है।

अतुल्यकालिक पैटर्न

अतुल्यकालिक (“भेजो और भूल जाओ”) पैटर्न में क्लाइंट संदेश भेजकर तुरंत आगे बढ़ जाता है, जबकि प्राप्तकर्ता पृष्ठभूमि में काम करता है। यह लॉगिंग या कार्यों के लिए उपयोगी है।

कोड: अतुल्यकालिक लॉगर प्रक्रिया

यह लॉगर प्रक्रिया केवल संदेश प्राप्त करके उन्हें प्रिंट करती है और कोई उत्तर नहीं भेजती — यही अतुल्यकालिक पैटर्न का सर्वर पक्ष है।

-module(async_logger).
-export([start/0, loop/0]).

start() ->
    spawn(async_logger, loop, []).

loop() ->
    receive
        {log, Message} ->
            io:format("LOG: ~p~n", [Message]),
            loop();
        _ ->
            io:format("Logger received unknown message.~n"),
            loop()
    end.

कोड: अतुल्यकालिक लॉगर क्लाइंट

संबंधित क्लाइंट लॉगर को शुरू करता है, संदेश भेजता है और प्रतीक्षा किए बिना तुरंत आगे बढ़ता है — इसका डिज़ाइन ही अवरोधरहित है।

-module(logger_client).
-export([run/0]).

run() ->
    LoggerPid = async_logger:start(),
    io:format("Logger started with PID: ~p~n", [LoggerPid]),

    LoggerPid ! {log, "User X logged in."},
    io:format("Client sent first log. Continuing...~n"),

    timer:sleep(10), % Give logger a moment to process
    LoggerPid ! {log, "User Y viewed profile."},
    io:format("Client sent second log. Task complete.~n").

समवर्तीता पैटर्न की जाँच

आप एक ऐसी प्रणाली बना रहे हैं जिसमें उपयोगकर्ता एक बड़ी वीडियो फ़ाइल अपलोड करता है। आपकी मुख्य प्रक्रिया को तुरंत उपयोगकर्ता को “वीडियो अपलोड हो गया है, पृष्ठभूमि में संसाधित किया जा रहा है।” बताना है, जबकि एक अलग प्रक्रिया वीडियो का ट्रांसकोड करती है। मुख्य प्रक्रिया और वीडियो ट्रांसकोडर के बीच की परस्पर क्रिया का सबसे सही वर्णन कौन-सा पैटर्न करता है?

पुनरावलोकन: मूल समवर्तीता पैटर्न

पुनरावलोकन: अनुरोध-उत्तर उत्तर की प्रतीक्षा करता है (इंटरैक्टिव काम), जबकि अतुल्यकालिक पैटर्न संदेश भेजकर आगे बढ़ जाता है (पृष्ठभूमि के कार्य)। यही आपके समवर्तीता टूलकिट के मुख्य औज़ार हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Erlang सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न” पाठ निःशुल्क है?

हाँ—“समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न” में मैं क्या सीखूँगा?

प्रक्रियाएँ शुरू करके और संदेश प्राप्त करके सरल समवर्ती ऐप्लिकेशन बनाएँ तथा क्लाइंट-सर्वर संवाद जैसे बुनियादी पैटर्न का अन्वेषण करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Erlang और VM का परिचय
  2. Erlang प्रक्रियाएँ और संदेश-प्रेषण
  3. समवर्ती प्रोग्रामिंग के बुनियादी पैटर्न
  4. पैटर्न मिलान और गार्ड
← वितरित और विफलता-सहिष्णु प्रणालियों की Erlang OTP प्रोग्रामिंग पर वापस जाएँ