Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 6049|Yanıt: 4

[Kaynak] ASP.NET Core (on dokuz) arka plan görevlerini çalıştırmak için BackgroundService kullanır

[Bağlantıyı kopyala]
2023-5-20 tarihinde yayınlandı 22:51:51 | | | |
Gereksinimler: Projede statik bir log kuyruğu tanımlanır ve her istek kuyruğun içine mesaj koyabilir; ayrıca web sitesinin bu kuyruk içindeki mesajları işlemek için arka plan görevi açması gerekir.

Eleştiri:

Linux'ta .NET Core tabanlı bir hizmet
https://www.itsvse.com/thread-9447-1-1.html
IHostedService arayüzü

IHostedService arayüzü, barındırılan nesneler için iki yöntem tanımlar:

StartAsync(CancellationToken): Arka plan görevlerini başlatmak için kullanılan mantık.
StopAsync(CancellationToken): Ana bilgisayar normal bir kapatma işlemi gerçekleştirdiğinde tetiklenir ve arka plan görevlerini sonlandırmak için mantık içerir.

Arka PlanHizmet temel sınıfı

BackgroundService, uzun süredir çalışan IHostedService olan kaynak kodu adresini uygulamak için kullanılan temel sınıftır:Bağlantı girişi görünür.



Arka plan servisini çalıştırmak için ExecuteAsync(CancellationToken) çağırın. Uygulama, arka plan hizmetinin tüm ömrünü temsil eden bir Görev döndürür. ExecuteAsync asenkron olana kadar başka hiçbir servis başlatılmaz, örneğin await çağırılmasıyla. ExecuteAsync'te uzun engelleme başlatma görevleri yapmaktan kaçının. StopAsync(CancellationToken) ExecuteAsync'in tamamlanmasını bekliyor.

Logu döngüde yazdırmak için arka plan görevi uygularız, kod şu şekildedir:

Hizmet hizmetine aşağıdaki kodla kaydolun:

Kayıt modu, aşağıdaki şekilde gösterildiği gibi tekli moddur:



Projeye aşağıdaki şekilde çıktı ile başlayın:



Arka plan görevinde kapsamlı bir hizmet kullanın

BackgroundService'te kapsamlı bir hizmet kullanmak için bir kapsam oluşturun. Varsayılan olarak, yönetilen hizmetler için kapsam oluşturulmaz. Doğrudan bir yapıcıyla scoped bir nesne enjekte ederseniz, hata şöyledir:

Çözülemeyen istisna. System.AggregateException: Bazı servisler oluşturulamıyor (ServiceType: Microsoft.Extensions.Hosting.IHostedService servis tanımlayıcısının doğrulanmasında hata Ömür: Singleton Uygulama Türü: WebApplication2.Worker.TestServiceHostedService': Singleton'dan kapsamlı hizmet 'WebApplication2.Worker.User' tüketemiyor Microsoft.Extensions.Hosting.IHostedService'.)
Kodu şu şekilde değiştirmemiz gerekiyor:

Referans:Bağlantı girişi görünür.

(Son)





Önceki:OData – OData vs GraphQL
Önümüzdeki:LiteDB Embedded Database for .NET tutorial
 Ev sahibi| 2023-5-20 tarihinde yayınlandı 22:52:45 |


eleştiri

ASP.NET Core (18) Basit bir OutputCache çıkış önbelleğini özelleştirin
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) MiniProfile uygulama performans analizini entegre ediyor
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Core (16) Dinamik kayıt hizmetlerinin enjeksiyonuna bağlı
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV), HTTP istekleri göndermek için HttpClient kullanır
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (on dört) SkiaSharp image captcha'sına dayanmaktadır
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII) ile Ajax talebi olup olmadığını belirlemek için
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (on iki) ön uç JS, CSS paketleme ve sıkıştırma
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) uç nokta rotası, tüm DI servislerini görüntülemek için middleware ekler
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Core(10)'daki Konfigürasyon önceliklerinin ayrıntılı açıklaması.
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Core'un Middleware ara yazılımının ayrıntılı açıklaması (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Core Middleware'in ayrıntılı açıklaması
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET Core(8)'deki Swagger arayüzünün varsayılan parametrelerinin bir yuvası.
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) Framework kaynak kodunun derinlemesine analizi
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI, nesneleri enjekte etme yöntemini manuel olarak elde eder
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (beş) CAP dağıtık işlemlere dayanmaktadır
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtresi birleşik ModelState model validasyonu
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) ActivatorUtilities kullanarak dinamik örnekler oluşturun
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Çekirdek (2) Uygulamayı kodla yeniden başlat
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis önbellekleme kullanır
https://www.itsvse.com/thread-9393-1-1.html
 Ev sahibi| 2023-5-29 tarihinde yayınlandı 20:29:45 |
IServiceProvider'ı IServiceScopeFactory ile değiştirebilirsiniz ve CreateScope oluştururken ikisi arasında hiçbir fark yoktur.
 Ev sahibi| 2023-8-2 19:13:00 tarihinde yayınlandı |
.NET 6'da yeni bir zamanlayıcı olan PeriodicTimer kullanılır
https://www.itsvse.com/thread-10637-1-1.html
 Ev sahibi| 2023-8-13 tarihinde 20:13:37 tarihinde yayınlandı |
StartAsync sadece şu şekilde sınırlı olmalıKısa vadeli görevler, çünkü barındırma hizmetiSırayla koşunhedefStartAsync tamamen çalışmadan başka hiçbir servis başlatılmaz.Uzun vadeli görevler ExecuteAsync içinde yerleştirilmelidir

Referans:Bağlantı girişi görünür.

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com