مهندسین عزیز درود و وقت بخیر
میخواستم بدونم atomic lock ها تو لاراول دقیقا برای چی استفاده میشه؟اینکه چرا برای اجرای یک فرایند مثل cache کردن داده ها یک قفلی ایجاد میشه و زمانی که اجرای فرآیند تموم شد قفل آزاد میشه؟اصلا هدف از این کار چیه؟
چرا برای یک تایمی مشخص قفل ایجاد میشه یا بدست میاد؟
مثل کد زیر
$lock = Cache::lock('foo', 10);
if ($lock->get()) {
// Lock acquired for 10 seconds...
$lock->release();
}
و ...
کلا هدف از اینکار رو میخوام بدونم تشکر
فرض کنید که یه پروژه دارید که برای هر کاربر اعتباری رو در نظر گرفتی
و پروژه داره خدمات مختلفی رو به کاربر ارائه میدی
کاربر میتونه از این خدمات با استفاده از اعتبارش استفاده کنه
حالا فرض کن که کاربر ،۱۰ امتیاز یا ۱۰ تومان یا ... اعتبار داره و در لحظه دوتا ریکوئست به سایت میزنه (به صورت همزمان) و درخواست میده که دوتا خرید اتفاق بیوفته
در حالت عادی سایت اعتبار کاربر رو در هر دو ریکوئست چک میکنه و میبینه که اعتبار کاربر ۱۰ هست و اعتبار لازم رو داره و نهایتا برای هر دو خرید به طور موازی تاییدیه صادر میشه و کاربر بیش از اعتبار خودش از سیستم خدمات میگیره
این سناریو ایرادی هست که از طریق اتومیک لاک قابل پیشگیری هست.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟