یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام

آموزش کار با ماژول Cluster Process در Node.js

آموزش کار با ماژول پردازش کلاستر (Cluster Process) در Node.js:

ماژول Cluster Process این امکان را فراهم می کند تا یک پردازش بزرگ را به پردازش های کوچکتر (Child Process) تقسیم نمایید که به صورت همزمان و با استفاده از یک سرور و پورت یکسان، اجرا می شوند.
چهارچوب کاری Node.js به صورت تک رویداد (single threaded) اجرا می شود که بسیار از لحاظ حافظه، مقرون به صرفه است اما برای استفاده بهتر از کامپیوترهایی که دارای پردازنده چند هسته ای هستند، ماژول Cluster Process این امکان را فراهم می کند تا یک پروسه واحد را به پروسه های کوچکتر (child) تقسیم نمایید که هر کدام بر روی هسته مخصوص به خود اجرا شده و سرعت کلی اجرای فرآیند را تسریع بخشد.
ساختار کلی استفاده از ماژول پردازش کلاستر (Cluster Process) به صورت زیر است :

1
2
var cluster = require('cluster');
            <button></button>

مثال : در کد مثال عملی زیر، در ابتدا یک پروسه به نام cluster تعریف شده که پردازش اصلی (master) است. در بار اول اجرای متد، پیام master صادر می شود، اما پس از اجرای متد fork ماژول Cluster Process ، پردازش اولیه Cluster به چند پردازش کوچکتر تقسیم شده و در اجرای دوم و سوم، برنامه اعلام می کند این پردازش یک زیرپردازش یا worker است :

1
2
3
4
5
6
7
8
9
10
var cluster = require('cluster');
 
if (cluster.isWorker) {
  console.log('I am a worker');
} else {
  console.log('I am a master');
  cluster.fork();
  cluster.fork();
}
            <button></button>

خروجی برنامه پس از 3 بار اجرای کد به صورت زیر است :

1
2
3
4
I am a master
I am a worker
I am a worker
            <button></button>

آموزش کار با خواص و متدهای ماژول cluster در Node.js:


متد
کاربرد
Disconnect()
این متد کلیه زیرپردازش ها (پردازش های فرزند child Process) های پردازش اصلی را قطع می کند.
exitedAfterDisconnect
این خاصیت اگر پردازش فرزند (child) پس از متد disconnect یا kill هنوز وجود داشته باشند، مقدار true را بر می گرداند.
Fork()
این متد یک پردازش فرزند (worker یا child) را از پردازش اصلی (master) ایجاد می کند.
Id
این خاصیت id یا شناسه منحصر به فرد هر پردازش را تعیین می کند.
isConnected
این خاصیت در صورتی که پردازش فرزند (worker) به پردازش مادر خود (worker) متصل باشد، مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
IsDead
این خاصیت در صورتی که پردازش فرزند (worker) از بین رفته (Dead) باشد، مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
IsMaster
این متد در صورتی که پردازش جاری، یک پردازش اصلی (Master) باشد، مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
IsWorker
این متد در صورتی که پردازش جاری، یک پردازش فرزند (worker) باشد، مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
Kill()
این متد، پردازش فرزند جاری را از بین می برد.
Process()
این متد، پردازش مرکزی فرزند (global child Process) را بر می گرداند.
SchedulingPolicy
این متد سیاست های تنظیم زمان اجرا را دریافت کرده یا تعیین می کند.
Send()
این متد یک پیام (message) را به یک پردازش اصلی (master) یا پردازش فرعی (worker) ارسال می کند.
Setting
این متد یک شیء (object) حاوی تنظیمات cluster را بر می گرداند.
setupMaster()
این متد تنظیمات یک کلاستر (Cluster) را تغییر می دهد.
Worker
این متد شیء پردازش فرزند (Child Process) جاری را بر می گرداند.
Workers
این متد کلیه زیرپردازش فرزند (worker) یک پردازش اصلی را بر می گرداند.
1398/05/18 2282 0
نظرات شما

نظرات خود را ثبت کنید...