.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
  • Наука та технологія

КОМЕНТАРІ • 26

  •  3 роки тому +2

    Elinize sağlık! Çok temiz bir anlatım.

  • @yigit2505
    @yigit2505 Рік тому +1

    Çok güzel anlatmışsın yine Salih Hocam. Teşekkürler.

  • @goksingorsun8906
    @goksingorsun8906 3 роки тому +2

    Teşekkürler emeklerinize sağlık :)

  • @muratozturk7207
    @muratozturk7207 2 роки тому +1

    Eline sağlık çok güzel açıklamışınız herşeyi

  • @fatiherden1985
    @fatiherden1985 3 роки тому +2

    Gerçekten çok güzel anlatım var. Teşekkür ederiz.

    • @TechBuddyTR
      @TechBuddyTR  3 роки тому +1

      Çok teşekkür ederim. İyi seyirler.

  • @fatiherden1985
    @fatiherden1985 3 роки тому +1

    Elinize sağlık

  • @abdullahcagman3856
    @abdullahcagman3856 2 роки тому

    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.

  • @ferdicuyar814
    @ferdicuyar814 Рік тому

    .net 6 da çalışmıyor yada ben beceremedim

  • @edipgenc3625
    @edipgenc3625 Рік тому +1

    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?

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      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

    • @edipgenc3625
      @edipgenc3625 Рік тому

      @@TechBuddyTR Tamamdır düzeldi teşekkür ederim

    • @edipgenc3625
      @edipgenc3625 Рік тому

      @@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

  • @glevig2005
    @glevig2005 5 місяців тому +1

    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.

    • @TechBuddyTR
      @TechBuddyTR  5 місяців тому

      Background servisler bu iş için biçilmiş kaftandır. Daha verimli ve zamanlamalı kullanmak istersiniz quartz gibi kütüphaneler kullanılabilir

    • @glevig2005
      @glevig2005 5 місяців тому

      @@TechBuddyTR quartzı duymuştum teşekkürler hocam viddolarınız benim gibi yeni mezunlara aşırı katkı sağlıyor

  • @oguzhan6516
    @oguzhan6516 2 роки тому

    Merhaba Ihosted service nin içinde api projesindeki repository servislerini oluşturamıyorum direk hata veriyor bunu çözümü nedir

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому

      Çok genel bahsetmişsiniz. Nasıl bir hata alıyorsunuz?

    • @oguzhan6516
      @oguzhan6516 2 роки тому

      @@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

  • @beyazbiyaz
    @beyazbiyaz Рік тому +1

    Bu videolar iki senedir niye önüme çıkmadı günlerdir onu düşünüyorum.

    • @TechBuddyTR
      @TechBuddyTR  Рік тому +1

      Geç olsun da güç olmasın :)
      Hoşgeldiniz

  • @ucamayanejderya
    @ucamayanejderya Рік тому

    Hocam bunun microseevices ile farki nedir

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      İ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.

  • @edipgenc3625
    @edipgenc3625 Рік тому

    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?

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      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.

    • @edipgenc3625
      @edipgenc3625 Рік тому

      @@TechBuddyTR Teşekkür ederim