کدسل یک پلتفرم آموزشی در حوزه برنامه نویسی و طراحی وب است.هدف کدسل بالا بردن سطح علمی علاقه مندان به این حوزه است. https://codecell.ir
آموزش استفاده از Hosted Service ها در Asp Core
Hosted Service چیست؟
Hosted service ها در ASP.NET Core 3.1 معرفی شدند و روشی عالی برای اجرای وظایف پس زمینه یا Background Task ها هستند.
Hosted service در دنیای NET Core در اصطلاح توسعه دهندگان به معنای وظایف پس زمینه روزمره است. اگر در دنیای C# و حتی دنیای Azure زندگی می کنید، در واقع چند گزینه برای انجام کارهای سبک پس زمینه دارید. مشکلاتی که میتوانید با استفاده از Hosted service حل کنید احتمالاً مشابه مشکلاتی هستند که در حال حاضر با استفاده از Windows Service ها یا Azure WebJobs حل می شوند.
Background Task ها را می توان با استفاده از Hosted service در یک برنامه وب ASP.NET Core اجرا کرد. اگر بخواهیم در پس زمینه چیزی را که بر همه کاربران تأثیر بگذارد اجرا کنیم استفاده از Hosted service ها بهترین گزینه ممکن است.
از طرف دیگر، می توان Hosted service ها را با استفاده از یک الگوی Worker Service اجرا کرد. Hosted service ها برای اجرای یک تسک پس زمینه طراحی شده اند و می توانند به عنوان یک سرویس ویندوز نیز راه اندازی شوند.
نحوه ایجاد یک Hosted service در asp core
برای ایجاد یک Hosted service در asp core دو راه وجود دارد:
استفاده از اینترفیس IHostedService برای ایجاد Hosted Service در Asp Core
اولین راهی که می توانیم انجام دهیم این است که اینترفیس IHostedService را پیاده سازی کنیم. کلاس پیاده کننده اینترفیس IHostedService باید متدهای StartAsync و StopAsync را پیاده سازی کند.
ارث بری از کلاس BackgroundService برای ایجاد Hosted Service در Asp Core
دومین راه جایگزین، ارث بری از کلاس BackgroundService است. کلاس BackgroundService یک کلاس انتزاعی است که اینترفیس IHostedService را نیز به ارث می برد. یکی از مزایای استفاده از این روش این است که ما مجبور نیستیم متدهای StartAsync یا StopAsync را پیاده سازی کنیم. با این حال می توانیم آن ها را override کنیم.
در کلاس BackgroundService یک متد انتزاعی به نام ExecuteAsync وجود دارد. از آنجایی که متد ExecuteAsync یک متد انتزاعی است، باید آن را برای اجرای Background Task های خود override کنیم.
چرا باید از Background Task ها یا کارهای پس زمینه استفاده کنیم؟
- افزایش سرعت
- منتظر نماندن کاربر جهت دریافت پاسخ و در نتیجه افزایش تجربه کاربری
- اجرای کارها طبق زمانبندی مشخص
- خودکار سازی کارها در پس زمینه
برای مشاهده این آموزش به وب سایت آموزش برنامه نویسی کدسل مراجعه نمایید:
اجرای وظایف پس زمینه یا Background Task ها در Asp Core
مطلبی دیگر از این انتشارات
صف (Queue) در سی شارپ
مطلبی دیگر از این انتشارات
آموزش Ajax در Asp Core
مطلبی دیگر از این انتشارات
جلوگیری از حملات XSS در Asp Core