🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ علی
queue worker
جامعه لاراول ایجاد شده در ۳۰ اردیبهشت ۱۴۰۱

سلام و خسته نباشید

آیا worker موازی با اجرای برناممون اجرا میشه ؟ سوالمو بیشتر توضیح میدم تا منظورمو متوجه بشید.

وقتی ما یک worker رو اجرا می‌کنیم یک نسخه از کل برنامه در حافظه ذخیره میکنه. وقتی کاربر درخواستی رو به سرور ما میزنه برنامه سمت سرور اجرا میشه همچنان که برنامه در حال اجراست در پس زمینه worker هم در حال اجراست یعنی دوتاشون به صورت موازی در حال اجرا هستن

فرض کنیم در وسطای اجرا برنامه یک job به صف ارسال میشه و همین که job در صف قرار گرفت worker در پس زمینه و موازی با اجرای برناممون شروع به پردازش job میکنه (با این فرض که تاخیری در اجرای job‌ها ایجاد نکرده باشیم) و worker برای اینکه بتونه اون job رو انجام بده نسخه ای از برنامه که تو حافظه ذخیره کرده رو اجرا میکنه

درواقع نتیجه ای که من میگیرم اینکه ، worker به این دلیل یه نسخه از برنامه رو در حافظه ذخیره میکنه که بتونه job‌ها رو در پس زمینه و به صورت موازی با اجرای برنامه پردازش کنه

سوال :

1. این چیزی که درک کردم و در بالا توضیح دادم درسته؟

2.اگر موارد بالا صحیح باشه به دلیل اینکه worker‌ها دائما در حال اجرا هستند منابع سرور رو اشغال میکنه و اگر ما تعداد worker هارو مدیریت نکنیم و worker‌های زیادی رو run کنیم حتی ممکنه سرعت اجرای برناممون کند‌تر هم بشه. درسته؟

سلام دوست عزیز

تاپیک شما رو برای استاد ارسال کردم و ایشون در اولین فرصت پاسخ شما رو خواهند داد

موفق باشید ?

محمد گازری ۰۱ خرداد ۱۴۰۱، ۱۵:۴۶

سلام

بله دقیقا به همین صورت هستش، یک نسخه از برنامه در پس زمینه اجرا میشه و اون عملیات به خصوص رو انجام میده.

در مورد سوال دومتون هم باید بگم هرچه تعداد ورکرها بیشتر باشه منابع سرور بیشتری استفاده میشه که خب به طبع باید حواستون به این موضوع هم باشه.

بهترین پاسخ
مهرداد سامی ۰۲ خرداد ۱۴۰۱، ۰۸:۱۳