.Net Core BackgroundService | IHostedService
Вставка
- Опубліковано 30 січ 2021
- .Net Core üzerinde çalışan bir uygulamanız için arka planda çalışan Job'larınız olsun istemez misiniz? .Net Core bünyesindeki BackgroundService nasıl çalışıyor bu videoda anlatmaya çalıştım.
IHostedService: docs.microsoft.com/tr-tr/aspn...
IHostedService vs BackgroundService: docs.microsoft.com/tr-tr/dotn...
Interlocked: www.csharpnedir.com/articles/r...
#DotnetCore #BackgroundService #IHostedService
#blazor #docker #dotnet
Kanala Abone Olmayı Unutmayın!
To Subscribe: bit.ly/3kvj2vw
Github: github.com/salihcantekin - Наука та технологія
Elinize sağlık! Çok temiz bir anlatım.
Çok güzel anlatmışsın yine Salih Hocam. Teşekkürler.
Teşekkürler emeklerinize sağlık :)
Eline sağlık çok güzel açıklamışınız herşeyi
Gerçekten çok güzel anlatım var. Teşekkür ederiz.
Çok teşekkür ederim. İyi seyirler.
Elinize sağlık
Merhaba, burada anlatmış olduğunuz konuda kendi projelerimizde kullandığımız bir işlemi uygulayabileceğimizi düşünüyorum. Kendi cihazlarımıza anlık olarak veri gönderme ve veri alma işlemi yaptığımız bir kısım var. Buradaki işler anlık olarak gerçekleştiriliyor ve birden fazla cihaza aynı anda bu işlemlerin gönderilmesi ve sonuçlarının takip edilmesi işlevini kazandırmak istersek burada nasıl bir çözüm üretebiliriz BackgroundService kullanarak? Şimdiden teşekkür ederim.
.net 6 da çalışmıyor yada ben beceremedim
Merhaba hocam, bu videonuzdan yola çıkarak bir microservice geliştirdim, bu bir TCP listener service, port üzerinden gelen mesajları karşılıyor, buraya kadar herhangi bir problem yok ancak sistem belli bir süre sonran kendini uyku moduna alıyor, ben servisteki herhangi bir controllera istek atınca da bu background servisler tekrar çalışıyor, biraz araştırdığımda IIS memory save etmek için bu servisleri uyku moduna alıyormuş, ne zaman API yi herhangi bir endpoint üzerinden tetiklerseniz o zaman bu IHostedService tekrar çalışır moda geçiyor.
Benim sorum ise, biz IIS in bu uyku moduna alma komutunu nasıl engelleyebiliriz?
IIS üzerinde Application Idle Time gibi bir ayarı vardı galiba. Default ta 20 olması lazım. Onu 0(sıfır) olarak değiştirirseniz uyku moduna geçmemesi gerekir artık
@@TechBuddyTR Tamamdır düzeldi teşekkür ederim
@@TechBuddyTR Hocam ek bilgi, benimle aynı sorunu yaşayacaklar için, sadece Idle Time yetmiyor birde Recycling olayı varmış, default 1740 minute, 29 saat, 29 saat sonra servisler tekrar uyku moduna girdi,
Cancel Idle Time-out:
Go into the IIS Manager
Click on Application Pools (on the left)
Right click on sisense application
Select "Set Application Pool Defaults..."
Change the value of "Idle Time-out (minutes)" from 20 to 0
Click "ok"
Cancel IIS Recycling :
Go into the IIS Manager
Click on Application Pools (on the left)
Right click on sisense application
Select "Recycling..."
Uncheck "Regular time intervals (in minutes)"
Click next
Click finish
Restart the IIS
hocam merhaba başka bir rest apiye istek atıp dönen verileri kendi veritabanımda kaydediyorum yaklaşık 50k civarı veri çekiliyor ve veri tabanı işlemleri yapılıyor. Mesela ilgili endpointe istek atıyorum pdf dosyasının urlsini alıyorum daha sonra bu dosyayı indirip byte dizisi olarak kaydediyorum gibi işlemler var yani bir dataya ulaşmak için 2 3 istek attığım durumlar oluyor ve yaklaşık 10dk sürüyor. 12 saatte bir bu sürecin tekrarlanması isteniyor benden. Bunun için background service mantıklı mıdır sizce şuanda background service kullanarak geliştiriyorum. Aynı zamanda bu 12 saatte bir güncellenen veritabanını kullanan rest apiler yazmam istenecek gitlab vs gibi uygulamalar ile entegre çalışacak. yaklaşık 3 aylık deneyimim var ve tek başıma yazıyorum bu uygulamayı. Videoyu görünce sizden bilgi almak istedim. Teşekkürler.
Background servisler bu iş için biçilmiş kaftandır. Daha verimli ve zamanlamalı kullanmak istersiniz quartz gibi kütüphaneler kullanılabilir
@@TechBuddyTR quartzı duymuştum teşekkürler hocam viddolarınız benim gibi yeni mezunlara aşırı katkı sağlıyor
Merhaba Ihosted service nin içinde api projesindeki repository servislerini oluşturamıyorum direk hata veriyor bunu çözümü nedir
Çok genel bahsetmişsiniz. Nasıl bir hata alıyorsunuz?
@@TechBuddyTR .net 3.1 api proje içerisinde bi tane worker service oluşturup 30 dk da bir biryere istek atıp dönen dataya göre veri tabanına işlem yapmak istiyorum ama worker class ının içine startupda addscoped ettiğim repositroy interface lerini çağırdırğımda proje çalışmıyor
Bu videolar iki senedir niye önüme çıkmadı günlerdir onu düşünüyorum.
Geç olsun da güç olmasın :)
Hoşgeldiniz
Hocam bunun microseevices ile farki nedir
İkisi arasında hiç bir benzerlik yok. Microservice dediğimiz, bir pattern bir yapıyı temsil ediyor. Buradaki kullanmış olduğumuz servis ise, arka plan işlemleri için kullanılıyor.
Merhaba hocam,
öncelikle elinize, emeğinize sağlık çok güzel bir içerik olmuş.
Benim bir sorum olacaktı, benim hali hazırda c# ile yazdığım bir windows service uygulaması var ve ben bunları .net core ile microservice mimarisine taşımaya çalışıyorum, windows serviste topshelf kütüphanesinden benzer bir şekilde bir HostFactory oluşturup, Start ve Stop metodları içinde gerekli komutları yazıyorum, soruma gelince ise ben bu yapı içinde multi threading bir yapı oluşturup ve birden fazla background servis ile farklı servislerden API veya TCP portlardan anlık veri dinlemek istiyorum, ve gerektiği zaman bu çalışan threadleri durdurmak, tekrar çalıştırmak, yeni thread eklemek yada kill etmek istiyorum, burada oluşturacağım controllerlar (API) ile bu yapıya dışarıdan müdahale edebilir miyim?
Bir BackgroundService projeniz olduğunu düşünün. Bunu bir webapi arkasında konumlandırabilirsiniz. Daha sonra bu API ye istek yapıldığında Thread'ler oluşturup bunları cancel edebilirsiniz. Bu service, çalıştığı sunucudaki tcp portlarını da dinleyebilir tabi ki. Bunun için bir TcpListener kullanılabilir.
@@TechBuddyTR Teşekkür ederim