View Full Version : حرفه ای: همزمانی در سیستم رزرو آنلاین
svahidm
پنج شنبه 15 مهر 1389, 09:23 صبح
با سلام به همگی
میخواستم بدونم کسی اینجا رو مسئله ی همزمانی در سیستم رزرو آنلاین هواپیما کار کرده یا نه؟
من یه وب دارم که کاربران میتونن از توش برای رزرو بلیط استفاده کنن ،میخواستم بدونم برای کنترل همزمانی چیکار میتونم بکنم ؟ اینکه یه صندلی به 2 نفر فروخته نشه و از این جور مسائل ......
reza6966
پنج شنبه 15 مهر 1389, 16:04 عصر
از thread و lock استفاده کن
همین جا جست جو کن مطالب خوبی هست
* شاید اساتیدی که روی روی سیستم رزرو کار کردن بیشتر بتونن کمک کنن
raziee
پنج شنبه 15 مهر 1389, 17:36 عصر
میخواستم بدونم کسی اینجا رو مسئله ی همزمانی در سیستم رزرو آنلاین هواپیما کار کرده یا نه؟
من یه وب دارم که کاربران میتونن از توش برای رزرو بلیط استفاده کنن ،میخواستم بدونم برای کنترل همزمانی چیکار میتونم بکنم ؟ اینکه یه صندلی به 2 نفر فروخته نشه و از این جور مسائل ......
اطلاعات صندلی ها در دیتابیس ذخیره میشه درسته؟(از اون شرکت هواپیمایی چه جوری اطلاعات رو میگیرید؟)
اگه کاربری یه صندلی رو برای ثبت درخواست میکنه 2 تا راه دارید:
1: اون صندلی رو قفل کنید تا کاربر دیگه ای برای رزور اقدام نکنه
2: اطلاعات رزرو رو تا مرحله ی آخر پیش ببرید و در آخر چک کنید که این صندلی آزاد هست یا نه.
راه اول رو پیاده سازی کنید. هر صندلی که برای رزرو انتخاب شد قفل بشه و کاربر دیگه ای اجازه ثبت رو نداشته باشه.
تا اینکه یا رزرو به پایان میرشه و اون صندلی فروخته میشه و یا رزرو انجام نمیشه ئ ائن صندلی آزاد میشه و دیگران میتونن اون رو رزرو کنن.
از thread و lock استفاده کن
همین جا جست جو کن مطالب خوبی هست
میشه بیشتر توضیح بدید؟
تو کجا باید از ترد استفاده کنند؟
reza6966
پنج شنبه 15 مهر 1389, 18:00 عصر
میشه بیشتر توضیح بدید؟
تو کجا باید از ترد استفاده کنند؟
منظور من هم همین بود که زودترین درخواست صندلی مورد نظر رو لاک کند و در آخر آنرا آنلاک کند
من بهشون پیشنهاد دادم که مباحث thread & lock رو مطالعه کنند
با تشر از شما ...
raziee
پنج شنبه 15 مهر 1389, 18:54 عصر
منظور من هم همین بود که زودترین درخواست صندلی مورد نظر رو لاک کند و در آخر آنرا آنلاک کند
من بهشون پیشنهاد دادم که مباحث thread & lock رو مطالعه کنند
با تشر از شما ...
در مورد این دوستمون که به نظر نمیرسه یه پروژه کاری باشه.
اما برام جالب هست که بدونم thread & lock به صورت میتونه کمک کنه.:کف:
منظور من از قفل کردن استفاده از یک فیلد از نوع bit در DB هست.
reza6966
پنج شنبه 15 مهر 1389, 20:14 عصر
در مورد این دوستمون که به نظر نمیرسه یه پروژه کاری باشه.
اما برام جالب هست که بدونم thread & lock به صورت میتونه کمک کنه.:کف:
من متوجه نشدم ؟؟ الان شما دارید به من تعنه می زنید ؟؟؟؟!!!!
منظور من از قفل کردن استفاده از یک فیلد از نوع bit در DB هست.
فکر کنم می دونید که لاک خودش چندین مدل داره
سخت افزاری و نرم افزاری .... من که نگفتم چطوری لاک رو پیاده سازی کنند ؟؟؟
ساده ترین نوع لاک ایجاد یک متغیر هست که زیاد هم مطمـءن نیست
اما زبان برنامه نوسی c# یا vb.net دارای لایبرری و امکاناتی برای ایجاد لاک داره که می تونن بهره گیرنند
iman_ad
پنج شنبه 15 مهر 1389, 23:58 عصر
thread وقتی کاربرد داره که شما می خواید دو بلاک کد به موازات هم اجرا کنید.
شما می تونید از timestamp استفاده کنید از این روش برای cuncurency استفاده می شه روش های مختلفی برای cuncunrency وجود داره کافی جستجو کنید.
svahidm
شنبه 17 مهر 1389, 08:39 صبح
با تشکر از همه ی دوستان
یه نکته اینکه شماره صندلی مهم نیست یعنی بحث من یه صندلی خاص نیست بلکه کل ظرفیت پرواز هست،اگه سوالم تداعی کننده ی صندلی خاص بوده عذرخواهی میکنم،اصلا من شماره صندلی ها رو نگه نمیدارم فقط ظرفیت کل پرواز رو دارم که از رو اینترنت رزرو صورت مگیره و بعد میان و بلیط رو دستی میگیرن در واقع مسئله اینجاست که یه نفر میاد درخواست سه تا بلیط برای پرواز رو میده و ما دقیقا 3 جا داریم ،این یارو تا زمانی که داره این 3 جا رو رزرو میکنه باید به هم ی دیگه اعلام بشه جا نداریم
alonemm
شنبه 17 مهر 1389, 09:22 صبح
دوست عزیز :
خب شما اول مشخص کنید که اول باید مراحل خرید انجام بشه بعد صندلی از لیست حذف بشه.
یا با انتخاب اون این عملیات انجام بشه؟
به نظر من بهتره شما برای خرید بلیط یک سری اطلاعات رو از کاربر بگیرید و در طول این عملیات این صندلی مورد نظر رو از لیست به صورت انتخاب شده در بیارید(این کارو بستگی به روش کدنویسی داره) اگه کامل شد که ثبت میشه اگه کاربر انصراف داد که به حالت عادی بر میگرده.
aminghaderi
شنبه 17 مهر 1389, 13:12 عصر
یه صندلی به 2 نفر فروخته نشه و از این جور مسائل ......
این بر می گرده به مهندسی طراحی db یا طراحی الگریتم یا طراحی نرم افزار و ارتباطی با بخش نداره؟!
کار زیاد خواصی هم نیست ، به نظر من ابتدا بدید سیستم کامل تجزیه و تحلیل بشه ، بعد بدید دست یه طراح db و بعد خودتون برنامش رو بنویسید. (مهم مسولیت نیست ؟! مهم شخص با تجربه در این ضمینه هست تا بتونه به شما کمک کنه)
فکر می کنم بخشی برای این کار در تالار هست .
من تجربه طراحی این جور سیستم ها رو دارم ، اگر تحلیلتون یا طراحی پایگاهتون درست نباشه ، مجبور می شوید چند بار سیستم رو باز نویسی کنید.
موفق باشی.
aref_65
یک شنبه 18 مهر 1389, 22:34 عصر
سلام
موقعی که یک نفر تعدادی صندلی رزرو میکنه این تعداد باید از ظرفیت کلی کسر بشه و ظرفیت جدید باقیمانده به جای ظرفیت کلی قبلی جایگرین بشه که این کار با عملیات محاسباتی ساده و ویرایش پس از تغییرات جدید انجام میشه.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.