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:
- appsettings.json
- pengaturan aplikasi. {Lingkungan} .json
- Rahasia Pengguna (hanya untuk pengembangan)
- Variabel Lingkungan
- 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:
- Konsol
- Debug
- Sumber acara
- 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.