404 Not Found! قیمت ها به ۴۰۳ برگشت! به مدت محدود!

بزن بریم!
ثانیه
دقیقه
ساعت
روز
علی صادقی
1 هفته پیش توسط علی صادقی مطرح شد
2 پاسخ

استفاده از queue برای sms verification

من برای صفحه ورود یک سایت فقط از شماره موبایل استفاده میکنم و کد تایید پیامکی میگیرم برای احراز هویت و لاگین
برای ارسال پیامک از صف لاراول استفاده میکنم و به خوبی کار میکنه
در اینده یه ایونتی قراره در سایت برگزار بشه که در بازه زمانی یک ساعته نزدیک 10 هزار نفر قراره وارد سایت بشن
میخواستم بدونم استفاده از صف برای اینکار منطقی و اصولی هست؟ ممکنه ارسال دریافت پیامک توسط یوزر خیلی طول بکشه؟
لازم به ذکره که از درایور redis استفاده میکنم و در horizon ارسال پیامک رو اولویت high تعریف کردم و max proccecor رو 70 تا گذاشتم سخت افزار سرورم هم قدرتمنده و 96 گیگ رم داره


ثبت پرسش جدید
رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 1 هفته پیش مطرح شد
0

سلام وقتت بخیر

برای این مورد نیاز نیست چون کاربرها می‌خوان درجا لاگین کنند و نباید زیاد منتظر بمونند و این فرایند اونقدر طولانی نیست که بخواید از queue براش استفاده کنید!


Amirreza Jafari
تخصص : برنامه نویس و توسعه دهنده وب
@AmirBizy 3 روز پیش مطرح شد
0

سلام

در مورد سوالت، استفاده از صف براي ارسال پيامك توي لاگين با كد تاييد، كاملا منطقي، اصولي و حتي توصيه شده هست؛ مخصوصا وقتي انتظار داري ترافيك زيادي مثل 10 هزار يوزر در يك ساعت وارد سايت بشن.

اما براي اينكه اين فرآيند واقعا سريع و بدون مشكل انجام بشه، چند نكته مهم هست كه بايد در نظر بگيري:

  1. خود صف مشكلي نداره، ولي...
    بيشتر از اينكه صف و Redis و Horizon باعث مشكل بشن، گلوگاه اصلي معمولا:

سرويس دهنده پيامك هست (محدوديت ارسال در دقيقه يا ثانيه)

يا زمان رسيدن پيامك به گوشي كاربر

پس مطمئن شو كه:

سرويس دهنده پيامكيت ظرفيت بالايي داره و مي تونه حجم زياد رو مديريت كنه

API ش در زمان ترافيك بالا پاسخگو باقي مي مونه

  1. استفاده درست از Horizon
    كارت خيلي خوب بوده كه:

priority رو گذاشتي high

از Redis استفاده كردي

maxProcesses رو روي 70 تنظيم كردي

فقط مطمئن شو كه:

تعداد worker هاي queue واقعا فعالن (مي توني با دستور php artisan horizon:status چك كني)

پردازشگرها توي اجراي job ها گير نمي كنن و سيستم عامل يا شبكه باعث تاخير نمي شه

  1. فاصله ارسال تا دريافت پيامك
    حتما در نظر بگير كه زمان رسيدن پيامك به كاربر به چيزهاي ديگه اي هم بستگي داره مثل:

سرعت اينترنت و آنتن دهي كاربر

صف پيامك سمت اپراتور (بعضي وقتا چند ثانيه تا چند دقيقه تاخير دارن)

فشار ترافيكي در زمان خاص (مثلا شروع ايوِنت)

مي توني يه دكمه "ارسال مجدد كد" بگذاري كه اگه مثلا بعد از 30 ثانيه كدي نرسيد، كاربر بتونه خودش درخواست بده

  1. مقياس پذيري Redis و Horizon
    با 96 گيگ رم و سخت افزار قوي، اگه Redis روي يه سرور خوب تنظيم شده باشه، مشكل خاصي نداري
    فقط مراقب باش كه Redis و worker ها زير بار زياد مصرف منابع بالايي نداشته باشن و تو تنظيمات Horizon حواست به memory usage و timeout ها باشه

در كل، روشي كه داري استفاده مي كني كاملا حرفه اي و قابل اطمينانه، فقط بايد مطمئن شي كه سرويس پيامكيت تو ترافيك بالا اذيتت نكنه
موفق باشي، اگه دوست داشتي بيشتر هم مي تونيم در مورد بهينه كردن كل فرآيند صحبت كنيم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام