کیاوش نوری
3 سال پیش توسط کیاوش نوری مطرح شد
2 پاسخ

atomic locks در کش لاراول

مهندسین عزیز درود و وقت بخیر
میخواستم بدونم atomic lock ها تو لاراول دقیقا برای چی استفاده میشه؟اینکه چرا برای اجرای یک فرایند مثل cache کردن داده ها یک قفلی ایجاد میشه و زمانی که اجرای فرآیند تموم شد قفل آزاد میشه؟اصلا هدف از این کار چیه؟
چرا برای یک تایمی مشخص قفل ایجاد میشه یا بدست میاد؟
مثل کد زیر

$lock = Cache::lock('foo', 10);

if ($lock->get()) {
    // Lock acquired for 10 seconds...

    $lock->release();
}

و ...
کلا هدف از اینکار رو میخوام بدونم تشکر


ثبت پرسش جدید
علی شجاعی
تخصص : مدیر فنی و برنامه نویس
@alishojaeiir 1 سال پیش مطرح شد
1

فرض کنید که یه پروژه دارید که برای هر کاربر اعتباری رو در نظر گرفتی
و پروژه داره خدمات مختلفی رو به کاربر ارائه میدی
کاربر میتونه از این خدمات با استفاده از اعتبارش استفاده کنه
حالا فرض کن که کاربر ،‌۱۰ امتیاز یا ۱۰ تومان یا ... اعتبار داره و در لحظه دوتا ریکوئست به سایت میزنه (به صورت همزمان) و درخواست میده که دوتا خرید اتفاق بیوفته
در حالت عادی سایت اعتبار کاربر رو در هر دو ریکوئست چک میکنه و میبینه که اعتبار کاربر ۱۰ هست و اعتبار لازم رو داره و نهایتا برای هر دو خرید به طور موازی تاییدیه صادر میشه و کاربر بیش از اعتبار خودش از سیستم خدمات میگیره

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


کیاوش نوری
تخصص : نرم افزار
@kiavash_it 1 سال پیش مطرح شد
0

تشکر فراوان


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

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