چگونه از اجرای Request های لغو شده توسط کاربر در سمت سرور جلوگیری کنیم؟

لغو  Request توسط کاربر ❌


برای خود شما به‌عنوان یک کاربر حتماً بارها پیش آمده که یک Request را در مرورگر برای یک وب‌سایت ارسال کرده‌اید؛ اما باگذشت چند ثانیه به هر دلیلی دکمه بستن ❌ مرورگر را فشار داده‌اید و از دریافت پاسخ آن Response منصرف شده‌اید.
سؤال اینجاست! آیا زمانی که شما درخواست خود را کنسل کردید، در سمت سرور هم درخواست کنسل شد؟ یا تا اتمام فرایند ادامه داشت؟

در حالت پیش‌فرض با کنسل‌کردن Request توسط کاربر، همان Request در سمت سرور کنسل نمی‌شود و تا پایان انجام می‌شود.
و این باعث هدررفت منابع سرور می‌شود، بدون آنکه برای ما دست آوردی داشته باشد.

 

 

Cancellationtoken

ما با استفاده از Cancellationtoken می‌توانیم اجرای درخواست‌های کنسل شده را در سمت سرور هم متوقف کنیم.
فرض کنید در وب‌سایت خود یک Method ایجاد کرده‌اید برای ساخت یک گزارش که چندین دقیقه طول می‌کشد که کامل انجام بشود.
حالا اگر کاربر یک Request به متد شما ارسال کرد و بعد از چند ثانیه منصرف شد. آیا منطقی است که ساخت گزارش تا انتها انجام شود؟ این در صورتی است که Request کاربر کنسل شده و ما نمی‌توانیم نتیجه را برای او ارسال کنیم.

در این نوع از سناریوها باید از Cancellationtoken برای لغو Requstها استفاده نماییم.
در این ویدئو با Cancellationtoken آشنا می‌شوید و نحوه استفاده از Cancellationtoken در برنامه‌های Asp.net Core را یاد می‌گیرید.

این ویدئو بخشی از دوره Background Task  می‌باشد.