Информационный портал по безопасности » Программирование » Worker Service в .NET Core 3: что такое и зачем нужно

 

Worker Service в .NET Core 3: что такое и зачем нужно

Автор: admin от 17-12-2019, 09:05, посмотрело: 87

В .NET Core 3 появился новый шаблон проекта под названием Worker Service. Этот шаблон разработан, чтобы дать вам отправную точку для создания кроссплатформенных сервисов. В качестве альтернативного варианта использования: он дает очень хорошую среду для создания консольных приложений, которая идеально подходит для контейнеров и микросервисов.



Worker Service в .NET Core 3: что такое и зачем нужно



Подробнее о некоторых из преимуществ использования этого шаблона читайте под катом.



Worker Service в .NET Core 3: что такое и зачем нужно




Внедрение зависимости



Шаблон Worker Service настраивает контейнер для внедрения зависимостей по умолчанию, готовый для использования. Это огромное преимущество по сравнению с общим шаблоном консоли.



Добавление служб включает обновление метода ConfigureServices в файле Program.cs:



Host.CreateDefaultBuilder(args)
   .ConfigureServices((hostContext, services) =>
   {
      services.AddTransient<ICustomerService,CustomerService>();
      services.AddHostedService<Worker>();
   });


Конфигурация



Те же настройки провайдеров конфигурации для ASP.NET Core дублируются здесь для Worker Services. Это дает нам мощную и знакомую среду для хранения информации о конфигурации:




  1. appsettings.json

  2. appsettings.{среда}.json

  3. User Secrets (только разработка)

  4. Переменные среды

  5. Аргументы командной строки



Для получения дополнительной информации о каждом из провайдеров, пожалуйста, смотрите мою предыдущую статью, размещенную здесь.



Логирование



Аналогично, провайдеры журналов были настроены в соответствии с настройками по умолчанию для ASP.Net Core, предоставляя вам следующих провайдеров:




  1. Console

  2. Debug

  3. EventSource

  4. EventLog (только при запуске на Windows)



Вы можете провайдеров логирования, добавив метод ConfigureLogging к объекту Host в Program.cs:



Host.CreateDefaultBuilder(args)
   .ConfigureServices((hostContext, services) =>
   {
      services.AddHostedService<Worker>();
   })
   .ConfigureLogging(logging =>
   {
      logging.ClearProviders();
      logging.AddConsole();
   });


Для получения дополнительной информации изучайте документацию по ASP.NET Core.



Worker Startup Class



Наконец, в файле Worker.cs будет существовать основная часть вашего кода. В базовом классе BackgroundService есть 3 переопределяемых метода, которые позволяют связать себя с жизненным циклом приложения:



ExecuteAsync – абстрактный метод, используемый в качестве основной точки входа для вашего приложения. Если этот метод прерывается, приложение закрывается.



StartAsync – Виртуальный метод, который, при переопределении, вызывается при запуске службы и может использоваться для одноразовой настройки ресурсов.



StopAsync – Виртуальный метод, который вызывается, когда приложение закрывается, и является хорошим местом для освобождения ресурсов и удаления объектов.



Итого



Новый шаблон Worker Service в .NET Core 3 создает среду хостинга, которая хорошо подходит для консольных приложений, микросервисов, контейнерных приложений и кроссплатформенных фоновых сервисов. Хотя эти преимущества можно настроить и независимо от шаблона, Worker Service предоставляет согласованную среду запуска для использования с ASP.NET Core и консольными приложениями.

Источник: Хабр / Интересные публикации

Категория: Программирование / Microsoft

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent