Node.js میں چائلڈ پروسیس کیسے بنائیں

Node Js My Chayl Prwsys Kys Bnayy



پروگرامنگ کے دوران ' node.js درخواست کے بڑھتے ہوئے کام کے بوجھ سے نمٹنے کے لیے ایک عمل کبھی بھی کارگر نہیں ہوتا۔ اس لیے، کچھ ایسے حالات ہو سکتے ہیں جہاں ڈویلپر کو نئے عمل بنانے، طویل مدتی کاموں کے ساتھ کام کرنے، اور آپریٹنگ سسٹم کے ساتھ تعامل کو فعال کرنے کی ضرورت ہوتی ہے۔ یہ ایک سے زیادہ عملوں کو استعمال کرنے کے لیے چائلڈ پروسیس بنا کر حاصل کیا جا سکتا ہے، اس طرح نوڈ ایپلیکیشن کو اسکیل کیا جا سکتا ہے۔

یہ تحریر ذیل میں درج مواد کی وضاحت کرتی ہے:







بچے کا عمل کیا ہے؟

بچے کا عمل کسی دوسرے عمل یعنی والدین کے ذریعے تخلیق کردہ عمل سے مطابقت رکھتا ہے۔ Node.js فراہم کرتا ہے ' بچہ_عمل ” ماڈیول جو بچوں کے عمل کے درمیان موثر مواصلت کو یقینی بناتا ہے۔ نیز، یہ ماڈیول چائلڈ پروسیس کے اندر کسی بھی سسٹم کمانڈ کو انجام دے کر آپریٹنگ سسٹم کی خصوصیات کو طلب کرنے میں مدد کرتا ہے۔



Node.js میں چائلڈ پروسیس کیسے بنائیں؟

بچہ عمل کرتا ہے ' node.js ذیل میں بیان کردہ طریقوں کے ذریعے تخلیق کیا جا سکتا ہے:



  • ' انڈے() 'طریقہ۔
  • ' کانٹا() 'طریقہ۔
  • ' exec() 'طریقہ۔
  • ' execFile() 'طریقہ۔

نقطہ نظر 1: node.js میں چائلڈ پروسیسز کو 'سپون()' طریقہ کے ذریعے بنانا

' انڈے() ' طریقہ فراہم کردہ cmdlet اور کمانڈ لائن دلائل کو استعمال کرتے ہوئے ایک نئے عمل میں cmdlet تیار کرتا ہے۔ چائلڈ پروسیس کی مثال EventEmitter API کو لاگو / نافذ کرتی ہے جو بچوں کی اشیاء پر ہونے والے واقعات کے لیے ہینڈلرز کو رجسٹر کرنے کی اجازت دیتی ہے۔ ان واقعات میں باہر نکلنا، منقطع ہونا، غلطی، پیغام، اور بند شامل ہیں۔





نحو

بچہ_عمل انڈے ( cmdlet [ , args ] [ ، اختیارات ] )

اس نحو میں:



  • cmdlet: یہ ایک سٹرنگ لیتا ہے جس پر عمل کرنے کے لیے cmdlet ہے۔
  • args: اس سے مراد سٹرنگ آرگیومینٹس کی فہرست ہے۔ پہلے سے طے شدہ قدر ایک خالی صف ہے۔
  • ' اختیارات 'ایک 'شیل' ہو سکتا ہے جو بولین ویلیو لیتا ہے۔ یہ ایسا ہے کہ اگر یہ ہے ' سچ ”، cmdlet کو شیل کے اندر سے عمل میں لایا جاتا ہے۔ پہلے سے طے شدہ قدر ہے ' جھوٹا جس کا مطلب کوئی شیل نہیں ہے۔ پہلے سے طے شدہ طور پر، ' انڈے() ” cmdlet کو چلانے کے لیے کوئی شیل نہیں بناتا/ نہیں بناتا، اس لیے چائلڈ پروسیس تک رسائی کے دوران اسے بطور 'آپشن' پاس کرنا بہت ضروری ہے۔

واپسی کی قیمت: یہ طریقہ چائلڈ پروسیس آبجیکٹ کو بازیافت کرتا ہے۔

بچوں کے عمل کو بنانے کا مظاہرہ درج ذیل ہے:

const { انڈے } = ضرورت ہے ( 'بچہ_عمل' ) ;

const بچہ = انڈے ( 'تم' , [ ڈی: \S ETUPS' ] , { شیل : سچ } ) ;

بچہ. stdout . پر ( 'ڈیٹا' , ( ڈیٹا ) => {

تسلی. لاگ ( `stdout : $ { ڈیٹا } ` ) ;

} ) ;

بچہ. stderr . پر ( 'ڈیٹا' , ( ڈیٹا ) => {

تسلی. غلطی ( `stderr : $ { ڈیٹا } ` ) ;

} ) ;

بچہ. پر ( 'بند کریں' , ( کوڈ ) => {

تسلی. لاگ ( کوڈ $ کے ساتھ بچے کا عمل ختم ہو گیا۔ { کوڈ } ` ) ;

} ) ;

کوڈ کے اس بلاک میں:

  • سب سے پہلے، شامل کریں ' بچہ_عمل چائلڈ پروسیس بنانے کے لیے ماڈیول۔
  • اس کے بعد، مخصوص راستے میں مشمولات کو ظاہر کرنے کے لیے ایک چائلڈ پروسیس شروع کریں، یعنی ' D:\SETUPS '
  • آخر میں، ' بند کریں ” ایونٹ کو اس وقت طلب کیا جاتا ہے جب پورے چائلڈ پروسیس سے باہر ہو جاتا ہے اور ایگزٹ پیغام کنسول پر ظاہر ہوتا ہے۔

آؤٹ پٹ

یہاں، کوڈ کو چلانے اور ٹارگٹ پاتھ میں مواد کو ڈسپلے کرنے کے لیے درج ذیل cmdlet پر عمل کریں:

نوڈ درجہ حرارت js

نقطہ نظر 2: 'فورک()' طریقہ استعمال کرتے ہوئے node.js میں چائلڈ پروسیس بنانا

یہ طریقہ 'کے ساتھ منسلک ہے انڈے() 'طریقہ جہاں بچے اور والدین کے درمیان مواصلت کو بذریعہ کیا جا سکتا ہے' بھیجیں() 'طریقہ.

' کانٹا() ” طریقہ حساب کے پیچیدہ کاموں کو ایونٹ لوپ (مین) سے الگ کرتا ہے۔ یہ طریقہ ایک سے زیادہ چائلڈ پروسیس تک رسائی کے لیے استعمال کیا جا سکتا ہے لیکن یہ مجموعی کارکردگی کو متاثر کر سکتا ہے کیونکہ ہر عمل کی اپنی میموری ہوتی ہے۔

نحو

بچہ_عمل کانٹا ( mdpath [ , args ] [ ، اختیارات ] )

اس نحو کے مطابق:

  • ' mdpath ” ایک سٹرنگ لیتا ہے جو بچے میں انجام دینے کے لیے ماڈیول کی نمائندگی کرتا ہے۔
  • ' args ” سے مراد سٹرنگ آرگیومینٹس کی فہرست ہے۔
  • ' اختیارات ''execPath'، 'env'، 'CWD'، 'detached' اور 'execArgv' ہو سکتا ہے۔

واپسی کی قیمت: یہ طریقہ چائلڈ پروسیس مثال کو بازیافت کرتا ہے۔

کوڈ (والدین عمل)

اب، ذیل میں دیئے گئے کوڈ کے بلاک کو دیکھیں جو والدین اور بچے کے عمل کے درمیان مواصلت کو قابل بناتا ہے۔ بھیجیں() طریقہ:

const cp = ضرورت ہے ( 'بچہ_عمل' ) ;

بچے کو دو = cp کانٹا ( __دیرنام + '/fork2.js' ) ;

بچہ. پر ( 'پیغام' ، فنکشن ( ایکس ) {

تسلی. لاگ ( 'والدین کے عمل کو ملا:' ، ایکس ) ;

} ) ;

بچہ. بھیجیں ( { ہیلو : 'والدین کے عمل سے' } ) ;

بچہ. پر ( 'بند کریں' , ( کوڈ ) => {

تسلی. لاگ ( `بچے کے عمل کو کوڈ $ کے ساتھ ختم کیا گیا۔ { کوڈ } ` ) ;

} ) ;

اس کوڈ میں:

  • اسی طرح، شامل کریں ' بچہ_عمل چائلڈ پروسیس بنانے کے لیے ماڈیول۔
  • اب، بچے کے عمل کے راستے کی وضاحت کریں ' کانٹا() 'طریقہ.
  • آخر میں، والدین کے عمل کی نمائندگی کرنے والا پیغام دکھائیں بھیجیں() 'طریقہ اور اگر کوئی ہے تو درپیش غلطی (زبانیں) دکھائیں۔

کوڈ(بچوں کا عمل)

درج ذیل کوڈ فائل یعنی ' fork2.js ' بچے کے عمل کی نمائندگی کرتا ہے جو ' کا استعمال کرتے ہوئے پیغام بھیجتا ہے بھیجیں() 'طریقہ، مندرجہ ذیل ہے:

عمل پر ( 'پیغام' ، فنکشن ( m ) {

تسلی. لاگ ( 'بچے کے عمل کو ملا:' , m ) ;

} ) ;

عمل بھیجیں ( { ہیلو : 'بچے کے عمل سے' } ) ;

آؤٹ پٹ

اب، کوڈ پر عمل کرنے کے لیے نیچے دیے گئے cmdlet کو چلائیں:

نوڈ فورک چائلڈ. js

اس آؤٹ پٹ سے، اس بات کی تصدیق ہوتی ہے کہ والدین اور بچے کے عمل کا مواصلت مناسب طریقے سے کیا جاتا ہے۔

طریقہ 3: 'exec()' طریقہ استعمال کرتے ہوئے node.js میں چائلڈ پروسیس بنانا

' exec() ” طریقہ پہلے ایک شیل بناتا ہے اور پھر cmdlet چلاتا ہے۔ یہ طریقہ کل ڈائریکٹریز کو بازیافت کرنے کے لیے استعمال کیا جائے گا۔

نحو

بچہ_عمل exec ( cmdlet [ ، اختیارات ] [ ، کال بیک ] )

دیئے گئے نحو میں:

  • ' cmdlet ” ایک سٹرنگ لیتا ہے جو اسپیس سے الگ ہونے والے دلائل کے ساتھ عمل کرنے کی کمانڈ کی نمائندگی کرتا ہے۔
  • ' اختیارات شامل ہیں 'cwd'، 'انکوڈنگ'، 'شیل' وغیرہ۔
  • ' کال بیک جب عمل/آپریشن ختم ہوتا ہے تو فنکشن کا مطالبہ کیا جاتا ہے۔

واپسی کی قیمت

یہ طریقہ چائلڈ پروسیس مثال کو بازیافت کرتا ہے۔

اب، اس کوڈ کی طرف بڑھیں جس میں ڈائریکٹریوں کی تعداد درج ہے:

const { exec } = ضرورت ہے ( 'بچہ_عمل' ) ;
exec ( 'ڈائر | تلاش کریں /c /v ''' , ( غلطی، stdout، stderr ) => {
اگر ( غلطی ) {
تسلی. غلطی ( `exec غلطی : $ { غلطی } ` ) ;
واپسی ;
}
تسلی. لاگ ( `stdout : نمبر ڈائریکٹریز کی -> $ { stdout } ` ) ;
اگر ( stderr != '' )
تسلی. غلطی ( `stderr : $ { stderr } ` ) ;
} ) ;

کوڈ کے اس ٹکڑوں میں، شامل کریں ' بچہ_عمل بچوں کے عمل کو بنانے/بنانے کے لیے ماڈیول۔ اس کے بعد، درپیش مستثنیات/غلطیوں کا مقابلہ کریں اور موجودہ ورکنگ ڈائرکٹری میں ڈائریکٹریوں کی کل تعداد دکھائیں۔

آؤٹ پٹ

کوڈ کو چلانے کے لیے درج ذیل کوڈ پر عمل کریں:

نوڈ execchild. js

اس آؤٹ پٹ میں، یہ ظاہر کیا جا سکتا ہے کہ موجودہ ورکنگ ڈائرکٹری میں کل ڈائریکٹریز ظاہر ہوتی ہیں۔

نقطہ نظر 4: execFile() طریقہ استعمال کرتے ہوئے node.js میں چائلڈ پروسیس بنانا

میں ' execFile() 'طریقہ، ٹارگٹ ایگزیکیوٹیبل فائل کو براہ راست ایک نئے پروسیس کی شکل میں پیدا کیا جاتا ہے اس لیے یہ اس سے زیادہ کارآمد ہے۔ exec() 'طریقہ. یہ طریقہ تخلیق شدہ ' execchild.js ایک نئے عمل کی شکل میں فائل۔

نحو

بچہ_عمل execFile ( فائل کا نام [ , args ] [ ، اختیارات ] [ ، کال بیک ] )

دیئے گئے نحو میں:

  • ' فائل کا نام ' ایک سٹرنگ لیتا ہے جو فائل کے نام یا عمل کے راستے کی نمائندگی کرتا ہے۔
  • ' args ” سٹرنگ آرگیومینٹس کی فہرست سے مماثل ہے۔
  • ' اختیارات شامل ہیں 'cwd'، 'انکوڈنگ'، 'شیل' وغیرہ۔
  • ' کال بیک جب عمل ختم ہوتا ہے تو فنکشن کی درخواست کی جاتی ہے۔ فنکشن کے دلائل error، stdout، وغیرہ ہو سکتے ہیں۔

واپسی کی قیمت

یہ طریقہ چائلڈ پروسیس مثال کو بھی بازیافت کرتا ہے۔

اب، درج ذیل کوڈ پر غور کریں جو ٹارگٹ ایگزیکیوٹیبل فائل کو ایک نئے عمل کے طور پر تیار کرتا ہے۔

const { execFile } = ضرورت ہے ( 'بچہ_عمل' ) ;
const ایکس = execFile ( 'نوڈ' , [ 'execchild.js' ] ,
( غلطی، stdout، stderr ) => {
اگر ( غلطی ) {
پھینکنا غلطی ;
}
تسلی. لاگ ( stdout ) ;
} ) ;

ان کوڈ لائنوں کی بنیاد پر، درج ذیل اقدامات کا اطلاق کریں:

  • شامل کرنے کے لیے زیر بحث طریقہ کار کو دہرائیں۔ بچہ_عمل 'ماڈیول۔
  • اگلے مرحلے میں، لاگو کریں ' execFile() ' طریقہ جو مخصوص ایگزیکیوٹیبل فائل (پچھلے نقطہ نظر میں زیر بحث) کو ایک نئے عمل کے طور پر تیار کرتا ہے، اس طرح ورکنگ ڈائرکٹری میں کل ڈائریکٹریوں کی فہرست ہوتی ہے۔

آؤٹ پٹ

کوڈ کو چلانے کے لیے نیچے دیے گئے cmdlet پر عمل کریں:

نوڈ execfile. js

اس نتیجے میں، اس بات کی تصدیق کی جا سکتی ہے کہ مخصوص ایگزیکیوٹیبل فائل تیار کی گئی ہے اور ڈائریکٹریوں کی تعداد ظاہر کی گئی ہے۔

نتیجہ

Node.js میں چائلڈ پروسیسز کو 'کے ذریعے بنایا جا سکتا ہے۔ انڈے() 'طریقہ،' کانٹا() 'طریقہ،' exec() 'طریقہ، یا ' execFile() 'طریقہ. یہ نقطہ نظر بچے کے عمل کو جنم دیتے ہیں، والدین اور بچے کے عمل کو مواصلت کو فعال کرتے ہیں، یا موجودہ ورکنگ ڈائرکٹری میں بالترتیب (براہ راست یا ٹارگٹ ایگزیکیوٹیبل فائل کو پھیلانے کے ذریعے) کی فہرست بناتے ہیں۔