برنامه نویسی

قفل های اتمی در لاراول به طور عمیق توضیح داده شده است

قفل اتمی چیست؟

قفل اتمی اصطلاحی نیست که مستقیماً به خود لاراول مرتبط باشد. این اصطلاح در واقع از پایگاه داده است. امیدوارم شما در مورد اصل ACID در پایگاه داده بدانید.

  1. اتمی بودن
  2. ثبات
  3. انزوا
  4. ماندگاری

قفل اتمی تحت اولین ویژگی atomicity قرار دارد. برای کسب اطلاعات بیشتر در مورد خاصیت ACID.

اجازه دهید وارد استفاده عملی شویم:

سناریو:

در مقطعی از زندگی برنامه‌نویس خود یا ممکن است یک برنامه تجارت الکترونیک یا نوعی سیستم رزرواسیون ساخته باشید. فقط به وضعیت برنامه تجارت الکترونیکی دو کاربر فکر کنید که در آن زمان سفارش را انجام می‌دهند. اما سهام همان‌طور که می‌دانیم همه درخواست‌های فرآیند برنامه‌های وب به طور همزمان ممکن است باعث ایجاد ناهماهنگی شود.

به عنوان مثال: 2-سفارش ممکن است انجام شود اما می دانیم که فقط 1 در انبار باقی مانده است.

چگونه با این وضعیت برخورد خواهد کرد؟ برای مدتی سر خود را جمع کنید تا راه حلی پیدا کنید، فقط ایده خود را در نظرات به اشتراک بگذارید اگر با چنین موقعیتی روبرو شدید و چگونه با این مشکل برخورد کردید؟

اگر عاشق تماشای محتوای ویدیویی برای راه حل هستید، کافی است ویدیوی زیر را تماشا کنید و کانالی را در یوتیوب به نام LaravelDaily مشترک شوید. این مقاله از این محتوای ویدیویی الهام گرفته شده است.


برای این نوع راه حل که در آن قفل اتمی لاراول وارد بازی می شود که به ما کمک می کند تا مانند حرفه ای این مشکل را مدیریت کنیم.

توضیحات تصویر

می توانید منطق برنامه را در داخل بنویسید Cache::lock متد و زمانی که شما مشخص کرده اید درخواست دیگری را در زیر هود پردازش نمی کند.

بنابراین، اولین سفارش پس از آن ثبت می شود که باقی مانده سهام 0 می شود، زیرا ما درخواست را در یک صف پردازش می کنیم. وقتی درخواست دوم در سهام سمت چپ می آید 0 است. سفارش دوم رد می شود. می توانید از این برای همه استفاده کنید. نوعی سناریوی مسابقه ای همچنین به عنوان مثال رزرو بلیط و رزرو هتل و غیره.

امیدوارم برای برخی از شما مفید باشد 🙂

من دوست دارم نظرات شما را بشنوم و نمونه های بیشتری را در نظرات زیر به من اطلاع دهید!

برای مطالب بیشتر مانند این فالو کنید و به اشتراک بگذارید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا