با استفاده از تابع GET_LOCK در MySQL، یک مثال بنویسید که قفل با نام 'my_app_lock' را با تایم‌اوت 10 ثانیه درخواست کند و سپس در صورت موفقیت عملیات آزادسازی قفل را انجام دهد.

5.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:51

0.0

برای حل این سوال از توابع سیستمی GET_LOCK و RELEASE_LOCK استفاده کنید: با SELECT GET_LOCK('my_app_lock', 10) قفل را درخواست کنید و مقدار بازگشتی (1=موفق، 0=تایم‌اوت، NULL=خطا) را بررسی کنید؛ در صورت موفقیت با SELECT RELEASE_LOCK('my_app_lock') قفل را آزاد کنید. نکات: قفل‌های نام‌دار به اتصال (connection) وابسته‌اند و با بسته شدن اتصال خودکار آزاد می‌شوند، بنابراین همیشه مقدار بازگشتی را چک کرده و قفل را سریع آزاد کنید تا از بن‌بست و مشکلات همزمانی جلوگیری شود.

توسط پژوهشگر در 201 روز قبل ساعت 03:51
دسته بندی ها: MySQL MySQL for beginner
sara در 201 روز قبل ساعت 04:54

قفل‌های نام‌دار به هر اتصال تعلق دارند و با بسته شدن آن اتصال آزاد می‌شوند. همیشه مقدار بازگشتی GET_LOCK(..., 10) را بررسی کنید و در صورت موفقیت با RELEASE_LOCK قفل را آزاد کنید تا از بن‌بست جلوگیری شود. اگر GET_LOCK برابر NULL یا 0 برگردد، نباید عملیات حساس به قفل انجام شود و مسیر جایگزین یا بازبینی ورود به بخش بحرانی را در نظر بگیرید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری