Layanan pekerja di .NET Core 3: apa itu dan mengapa itu perlu

.NET Core 3 memperkenalkan templat proyek baru yang disebut Worker Service. Template ini dirancang untuk memberi Anda titik awal untuk membuat layanan lintas platform. Sebagai kasus penggunaan alternatif: ia menyediakan lingkungan yang sangat baik untuk membuat aplikasi konsol, yang ideal untuk wadah dan layanan Microsoft.



Baca lebih lanjut tentang beberapa manfaat menggunakan templat ini di bawah kucing.



Injeksi Ketergantungan


Templat Layanan Pekerja mengatur wadah untuk injeksi ketergantungan secara default, siap digunakan. Ini adalah keuntungan besar dari keseluruhan template konsol.

Menambahkan layanan mencakup 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. {environment} .json
  3. Rahasia Pengguna (hanya pengembangan)
  4. Variabel lingkungan
  5. Argumen baris perintah

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

Penebangan


Demikian pula, penyedia log dikonfigurasi sesuai dengan pengaturan default untuk ASP.Net Core, menyediakan Anda dengan penyedia berikut:

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

Anda bisa menambahkan 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();  }); 

Lihat dokumentasi ASP.NET Core untuk informasi lebih lanjut.

Kelas Starter Pekerja


Akhirnya, sebagian besar kode Anda akan ada di file Worker.cs . Ada 3 metode yang dapat didefinisikan ulang di kelas BackgroundService dasar yang memungkinkan Anda untuk menghubungkan diri Anda dengan siklus hidup aplikasi:

ExecuteAsync adalah metode abstrak yang digunakan sebagai titik masuk utama untuk aplikasi Anda. Jika metode ini terputus, aplikasi ditutup.

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

StopAsync - Metode virtual yang disebut ketika aplikasi ditutup, dan merupakan tempat yang baik untuk membebaskan sumber daya dan menghapus objek.

Total


Templat Layanan Pekerja baru di .NET Core 3 menciptakan lingkungan hosting yang sangat cocok untuk aplikasi konsol, layanan mikro, aplikasi wadah, dan layanan latar belakang lintas platform. Meskipun manfaat ini dapat disesuaikan secara terpisah dari templat, Worker Service menyediakan lingkungan peluncuran yang konsisten untuk digunakan dengan ASP.NET Core dan aplikasi konsol.

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


All Articles