Demistifikasi Layanan .NET Core 3 Worker baru

Konsultan Pengembang Premier Randy Patterson membahas manfaat menggunakan proyek proyek Layanan Pekerja baru yang diperkenalkan di .NET Core 3.

.NET Core 3 memperkenalkan templat proyek baru yang disebut Worker Service. Template ini dirancang untuk memberi Anda titik awal untuk layanan lintas platform. Sebagai use case alternatif, ia mengatur lingkungan yang sangat bagus untuk aplikasi konsol umum yang sempurna untuk wadah dan layanan Microsoft.



Beberapa manfaat menggunakan templat ini mencakup bidang-bidang berikut.



Ketergantungan injeksi


Templat Layanan Pekerja mengonfigurasi wadah injeksi Ketergantungan default, siap untuk kita gunakan. Ini adalah manfaat yang sangat besar dibandingkan dengan templat Konsol umum.

Menambahkan Layanan melibatkan memperbarui metode ConfigureServices dalam file Program.cs :

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

Konfigurasi


Pengaturan penyedia konfigurasi yang sama untuk ASP.NET Core digandakan di sini untuk Layanan Pekerja. Ini memberi kami lingkungan yang kuat dan akrab untuk menyimpan informasi konfigurasi:

  1. appsettings.json
  2. pengaturan aplikasi. {Lingkungan} .json
  3. Rahasia Pengguna (hanya untuk pengembangan)
  4. Variabel Lingkungan
  5. Argumen Baris Perintah

Untuk informasi tambahan tentang masing-masing penyedia silakan lihat artikel saya sebelumnya yang diposting di sini .

Penebangan


Demikian juga, penyedia logging telah dikonfigurasi untuk mencocokkan pengaturan default untuk ASP.Net Core, memberi Anda penyedia berikut:

  1. Konsol
  2. Debug
  3. Sumber acara
  4. EventLog (hanya saat berjalan di Windows)

Anda bisa memodifikasi penyedia logging dengan menambahkan metode ConfigureLogging ke objek Host di Program.cs :

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

Untuk informasi tambahan tentang pencatatan, silakan lihat dokumentasi untuk ASP.NET Core.

Kelas Starter Pekerja


Akhirnya, file Worker.cs adalah tempat sebagian besar kode Anda akan ada. Ada 3 metode yang dapat ditimpa dari BackgroundService kelas dasar yang memungkinkan Anda mengikat ke siklus hidup aplikasi Anda:

ExecuteAsync - metode abstrak yang digunakan sebagai titik masuk utama untuk aplikasi Anda. Jika metode ini keluar, maka aplikasi Anda dimatikan.

StartAsync - Metode virtual yang, ketika diganti, dipanggil saat layanan dimulai, dan dapat digunakan untuk pengaturan sumber daya satu kali.

StopAsync - Metode virtual yang disebut ketika aplikasi dimatikan, dan merupakan tempat yang baik untuk melepaskan sumber daya dan membuang objek.

Ringkasan


Template layanan pekerja baru di .NET Core 3 menciptakan lingkungan hosting yang sangat cocok untuk aplikasi konsol, layanan microser, aplikasi kemas, dan layanan latar belakang lintas platform. Sementara manfaat ini dapat dikonfigurasi secara terpisah dari Templat, Templat Layanan Pekerja memberi kami lingkungan startup yang konsisten antara ASP.NET Core dan aplikasi Konsol.

Source: https://habr.com/ru/post/id480048/


All Articles