مجید
3 سال پیش توسط مجید مطرح شد
3 پاسخ

کنترل اجرای تابع

سلام وقت بخیر
بنده تابعی دارم که انبار سیستم را به روز رسانی میکنه
وقتی این تابع در حال اجراست نباید این تابع و توابع دیگری فراخوانی بشن چون این توابع در دیتابیس تغییر ایجاد میکنند اجرای همزمان این توابع باعث بروز خطا میشن
من از Session استفاده کردم و سشنی در شروع اجرای این تابع مقدار دهی کردم و در پایین نیز حذف میکردم و در حین فراخوانی توابع دیگر چک میکردم که در حال اجرا نباشه
اما چون سشن روی مرورگر هست ممکن است از سیستم دیگری این توابع فراخوانی بشن و خطا رخ بده
به نظرتون چطوری میتونم اجرای این توابع را کنترل کنم ؟
ممنون میشم راهنمایی بفرمایید.
@mhyeganeh @ali.bayat


ثبت پرسش جدید
فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

نه ببینید واسه این مواردی که حساس هستند داخل سیستمون اصلا با مواردی مثل متغیر و سشن و ... کار نکنید حتما ببریدش داخل دیتابیس.
منظورم این بود مثلا یک جدول درست کنید داخل دیتابیس بانام تنظیمات یا اگر جدولی دارید که امکانش هست وضعیت سیستم رو داخلش تنظیم کنید با اون کار کنید ،
حالا چطور کار میکنه ؟ شما گفتید وقتی تابع من شروع به کار میکنه سشن ست میکنم اما حالا تابع که کار کرد شما وضعیت سیستم رو داخل دیتابیس تغییر بدید مثلا وضعیت سیستم میشه 1 و تابع شما در حال اجرا هستش
حالا اگر یه شخص دیگه ای داخل سیستم خودش همزمان خواست تغییر ایجاد کنه شما باید یه شرطی رو چک کنی اگر وضعیت سیستم همون 1 بود پس بهش اجازه اجرا رو نمیدی میگی مثلا چند دقیقه دیگه اقدام کنید سیستم در حال بروز رسانی هست
تابع بروز رسانی سیستم که اجرا شد در اخر وضعیت سیستم رو به حالت 0 تغییر بده


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

سلام وقت بخیر ،
یک فیلد وضعیت میتونید در نظر بگیرید مثلا در حالت updating و ...
برای موقع هایی که قرار بروز رسانی انجام بشه در دیتابیس وضعیت به updating تغییر میکنه و با شرط if کنترل کنید که در این حالت کدوم تابع اجرا بشع


مجید
تخصص : برنامه نویس
@majeeddehghan 3 سال پیش مطرح شد
0

دقیقا متوجه منظورتون نشدم
منظورتون اینه متغیر سراسری تعریف کنم ؟
@eniack


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

نه ببینید واسه این مواردی که حساس هستند داخل سیستمون اصلا با مواردی مثل متغیر و سشن و ... کار نکنید حتما ببریدش داخل دیتابیس.
منظورم این بود مثلا یک جدول درست کنید داخل دیتابیس بانام تنظیمات یا اگر جدولی دارید که امکانش هست وضعیت سیستم رو داخلش تنظیم کنید با اون کار کنید ،
حالا چطور کار میکنه ؟ شما گفتید وقتی تابع من شروع به کار میکنه سشن ست میکنم اما حالا تابع که کار کرد شما وضعیت سیستم رو داخل دیتابیس تغییر بدید مثلا وضعیت سیستم میشه 1 و تابع شما در حال اجرا هستش
حالا اگر یه شخص دیگه ای داخل سیستم خودش همزمان خواست تغییر ایجاد کنه شما باید یه شرطی رو چک کنی اگر وضعیت سیستم همون 1 بود پس بهش اجازه اجرا رو نمیدی میگی مثلا چند دقیقه دیگه اقدام کنید سیستم در حال بروز رسانی هست
تابع بروز رسانی سیستم که اجرا شد در اخر وضعیت سیستم رو به حالت 0 تغییر بده


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

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