PDA

View Full Version : راه حل برای همزمانی |concurrency



kazemimorteza
یک شنبه 02 شهریور 1393, 09:26 صبح
سلام وقتتون بخیر.
من سیستم رزرو انلاین با پرداخت برای یک هتل کوچیک با بیستا اتاق درام احتمال اینکه همزمان یک اتاق توسط چند نفر رزرو شود وجود دارد.
یا mysql راه حلی برای این موضوع در نظر گر فته است؟ به طوری که وقتی اقدام به رزرو یک اتاق میشه.


البته روشی که من در نظر دارم اینکه وقتی کاربر اقدام به رزرو میکنه یرای 5 دقیقه اون اتاق بره تو حالت lock و بقیه نتونن اقدام به رزرو کنند .البته با ثبت وضعیت اتاق مورد نظر در دیتابیس.

MMSHFE
یک شنبه 02 شهریور 1393, 10:13 صبح
خیر چنین قابلیتی بطور پیشفرض وجود نداره. روشی که انتخاب کردین خوبه و ما هم برای یک پروژه همینکار رو انجام دادیم و IDهای رزرو شده رو توی سشن گذاشتیم و یک فیلد هم به جدول رزرو اضافه کردیم تحت عنوان زمان رزرو که با Cron Jobs یا متد init از کنترلر والد Controller.php بتونیم اون رکوردهایی که اختلاف زمان رزرو با الان در اونها بیشتر از تایم اوت مشخص شده باشه و قطعی نشده باشن، به حالت عادی برگردونیم. البته بهتره برای اطمینان بیشتر، اگه یک نفر توی سیستم بیش از چند بار مشخص، رزرو کرد و نخرید، به شکلی که صلاح میدونید تا مدت مشخص (فرضاً 24 ساعت) بلاکش کنید.