Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 6049|Jawab: 4

[Sumber] ASP.NET Core (sembilan belas) menggunakan BackgroundService untuk menjalankan tugas latar belakang

[Salin tautan]
Dipaparkan pada 2023-5-20 22:51:51 | | | |
Persyaratan: Antrean log statis ditentukan dalam proyek, dan setiap permintaan dapat memasukkan pesan ke dalam antrean, dan kami memerlukan situs web untuk membuka tugas latar belakang untuk memproses pesan dalam antrean ini.

Resensi:

Layanan berdasarkan .NET Core di Linux
https://www.itsvse.com/thread-9447-1-1.html
Antarmuka IHostedService

Antarmuka IHostedService mendefinisikan dua metode untuk objek yang dihosting:

MulaiAsinkron(CancellationToken): Logika yang digunakan untuk memulai tugas latar belakang.
BerhentiAsinkron(CancellationToken): Dipicu saat host melakukan shutdown normal, berisi logika untuk mengakhiri tugas latar belakang.

Kelas dasar BackgroundService

BackgroundService adalah kelas dasar yang digunakan untuk mengimplementasikan IHostedService yang berjalan lama, alamat kode sumber:Login hyperlink terlihat.



Panggil ExecuteAsync(CancellationToken) untuk menjalankan layanan latar belakang. Implementasi mengembalikan Tugas yang mewakili seluruh masa pakai layanan latar belakang. Tidak ada layanan lain yang dimulai hingga ExecuteAsync menjadi asinkron, seperti dengan memanggil await. Hindari melakukan tugas inisialisasi pemblokiran yang lama di ExecuteAsync. StopAsync(CancellationToken) menunggu ExecuteAsync selesai.

Kami mengimplementasikan tugas latar belakang untuk mencetak log dalam perulangan, kodenya adalah sebagai berikut:

Daftar di layanan layanan dengan kode berikut:

Mode pendaftaran adalah singleton, seperti yang ditunjukkan pada gambar di bawah ini:



Mulailah proyek dengan output sebagai berikut:



Menggunakan layanan tercakup dalam tugas latar belakang

Untuk menggunakan layanan tercakup di BackgroundService, buat cakupan. Secara default, tidak ada cakupan yang dibuat untuk layanan terkelola. Jika Anda menggunakan konstruktor secara langsung untuk menyuntikkan objek tercakup, kesalahannya adalah sebagai berikut:

Pengecualian yang tidak ditangani. System.AggregateException: Beberapa layanan tidak dapat dibuat (Kesalahan saat memvalidasi deskriptor layanan 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Seumur hidup: Singleton ImplementationType: WebApplication2.Worker.TestServiceHostedService': Tidak dapat menggunakan layanan tercakup 'WebApplication2.Worker.User' dari singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Kita perlu memodifikasi kode sebagai berikut:

Referensi:Login hyperlink terlihat.

(Akhir)





Mantan:OData – OData vs GraphQL
Depan:Tutorial LiteDB Embedded Database untuk .NET
 Tuan tanah| Dipaparkan pada 2023-5-20 22:52:45 |


resensi

ASP.NET Inti (18) Menyesuaikan cache output OutputCache sederhana
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) mengintegrasikan analisis kinerja aplikasi MiniProfile
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Inti (16) Bergantung pada injeksi layanan pendaftaran dinamis
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) menggunakan HttpClient untuk mengirim permintaan HTTP
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (empat belas) didasarkan pada captcha gambar SkiaSharp
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII) untuk menentukan apakah itu permintaan Ajax atau tidak
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Inti (dua belas) front-end JS, bundling CSS, dan kompresi
https://www.itsvse.com/thread-10282-1-1.html

Rute titik akhir ASP.NET Core (XI) menambahkan middleware untuk menampilkan semua layanan DI
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Penjelasan terperinci tentang prioritas Konfigurasi di Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Penjelasan terperinci tentang middleware Middleware dari Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Penjelasan rinci tentang Core Middleware
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET lubang parameter default UI Swagger di Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Inti (7) Analisis mendalam dari kode sumber kerangka kerja
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI secara manual memperoleh metode penyuntikan objek
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (lima) didasarkan pada transaksi distribusi CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) memfilter validasi model ModelState terpadu
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Inti (iii) Membuat instans secara dinamis menggunakan ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Inti (2) Mulai ulang aplikasi dengan kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) menggunakan caching Redis
https://www.itsvse.com/thread-9393-1-1.html
 Tuan tanah| Dipaparkan pada 2023-5-29 20:29:45 |
Anda dapat mengganti IServiceProvider dengan IServiceScopeFactory, dan tidak ada perbedaan antara keduanya saat membuat CreateScope.
 Tuan tanah| Dipaparkan pada 2023-8-2 19:13:00 |
Pengatur waktu baru di .NET 6, PeriodicTimer, digunakan
https://www.itsvse.com/thread-10637-1-1.html
 Tuan tanah| Dipaparkan pada 2023-8-13 20:13:37 |
StartAsync harus dibatasi padaMisi jangka pendek, karena layanan hosting adalahJalankan secara berurutanTargetTidak ada layanan lain yang dimulai hingga StartAsync berjalan sepenuhnyaTugas jangka panjang harus ditempatkan di ExecuteAsync

Referensi:Login hyperlink terlihat.

Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com