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 ها یا کارهای پس زمینه استفاده کنیم؟
- افزایش سرعت
- منتظر نماندن کاربر جهت دریافت پاسخ و در نتیجه افزایش تجربه کاربری
- اجرای کارها طبق زمانبندی مشخص
- خودکار سازی کارها در پس زمینه
سرفصل های دوره آموزش استفاده از Hosted Service ها جهت اجرای کارهای پس زمینه یا Background Task ها در Asp Core
- ایجاد Hosted Service با استفاده از پیاده سازی اینترفیس IHostedService جهت اجرای تسک های پس زمینه یا Background Task های زمان بندی شده(Timed Background Tasks) در Asp Core
- ایجاد Hosted Service با استفاده از ارث بری از کلاس BackgroundService و نحوه تزریق وابستگی در Hosted Service ها در Asp Core
- آموزش نحوه استفاده از SemaphoreSlim در سی شارپ جهت پیاده سازی Queued Background Tasks در Asp Core
- پیاده سازی Queued Background Tasks جهت اجرای کارهای پس زمینه یا Background Task های موجود در صف اجرا در Asp Core
- نحوه ارسال ایمیل در پس زمینه با استفاده از Hosted Service ها در Asp Core
ما در این آموزش یک پروژه ارسال ایمیل و خبرنامه به کاربران را با استفاده از Asp Core 6 و Hosted Service ها جهت ارسال ایمیل ها در پس زمینه،شبیه سازی خواهیم کرد. در این پروژه وظیفه ارسال ایمیل به هر کاربر در صف قرار خواهد گرفت و این وظایف در پس زمینه از صف دریافت و اجرا خواهند شد.
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید