WebApi: Etkili KUYRUK Yapısı | Background Service Queue

Поділитися
Вставка
  • Опубліковано 30 лип 2022
  • Bir WebApi projeniz var ve arka planda çalışan bir kuyruk yapısına mı ihtiyacınız var. Bu video tam size göre. C# içerisinde çok az kişinin bildiğini tahmin ettiğim bir yapıdan bahsediyorum bu videoda.
    #BackgroundService #Queue #BackgroundQueue
    #blazor #docker #dotnet
    Kanala Abone Olmayı Unutmayın!
    To Subscribe: bit.ly/3kvj2vw
    Github: github.com/salihcantekin
    Discord: / discord
    Üyelik ayrıcalıkları için: / @techbuddytr
  • Наука та технологія

КОМЕНТАРІ • 48

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

    Teşekkürler hocam verdiğiniz bilgiler için

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

    Emeginize saglik!!! Cok cok tesekkurler! Best video!!!

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada Рік тому +2

    Ellerinize emeğinize sağlık hocam. Teşekkür ederim 🙏

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

    Bilgilendirme için teşekkürler. Güzeldi

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

    Gerçekten benim için çok faydalı bir içerik oldu. Emeğinize sağlık.

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

    Bu değerli bilgiiçin teşekkür ederim.

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

    Emeğinize Sağlık Hocam

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

    Konu harika. Anlatım akıcı. Teşekkürler hocam. Hemen abone oluyorum

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

    Emeğinize sağlık... Çok başaları hocam...

  • @enesceb
    @enesceb 6 місяців тому +1

    Hocam elinize sağlık çok güzel bir anlatım olmuş tamda buna benzer bir şeye ihtiyacım vardı. Teşekkür ederim

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

    Teşekkürler

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

    ITS REALLY WORKED LOL THANK YOU DUDE

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

    İyi Çalışmalar Hocam,
    Bu video ile ilgili bir best practice örneği yapılabilir pekişmesi açısından. Mesela bir blog sitesinin altında mail bültenine katılabilirsiniz kısmı var. Mail bültenine katılan kullanıcılara blog yazısı paylaşıldığında belirttikleri mail adresine blog yayınlandı tarzı mail gönderimi sistemi olabilir.

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

      Bu tarz bir yapıda rabbitmq, kafka vs gibi messagebroker ları kullanmak daha mantıklı olacaktır. Sözlük sitesi yazıyoruz projesindeki gibi. Orada bazı örneklerimiz rabbitmq aracılığı ile yönetiliyor. Oradan istifade edebilirsiniz best practice için

  • @murat.yuceer
    @murat.yuceer Рік тому +1

    nice job

  • @abdulkadirkg
    @abdulkadirkg Рік тому +3

    Salih hocam çok teşekkürler, keşke event fırlatıp onu başka bi yerde yakalamayı da görseydik 😜

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

      Video çok uzuyor sonra 😂😂

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

    Hocam burda generik yapi olsayda daha guzel olurdu ama yine de super olmus ben denedim bende calisti ve bunu sql ekstra backup gibi ayri bir database yazmak icin kullanicagim emeginize salik.....

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

      Kendime yaptığım örnekte generic bir yapı vardı. O zaman da action vermek gerekiyor tabi daha generic tutabilmek için. Bu sefer de işler biraz daha az anlaşılabilir olurdu. Videoyu da çok uzatmamak adına string olarak devam ettim

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

      @@TechBuddyTR Hocam generic yapmayı denedim ama controller'da, hostedSevice'de tipi belirtmek gerekiyor. Daha fazla generic yapabilir miyiz? Action ile kurgulayamadım

  • @murat.yuceer
    @murat.yuceer Рік тому +1

    burdaki kuyruğu persist hale getirirsek güzel olurdu

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

      Kuyruk yapıları ile ilgili başka videolarımız var. Onlara bekleriz :)

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

    hocam çok faydalı oldu teşekkürler , şöyle bir sorum var job'ı user'ın set ettiği tarihte çalıştırmanız gerekirse ve birden fazla böyle methodlarınız olsaydı nasıl bir yapı kullanırdınız , hint verme şansınız var mı?

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

      Quartz kütüphanesi ile Sceheduler gibi bir yapı kullanırdım 😊

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

      @@TechBuddyTR Quartz'a çok hakim değilim ama şuanda hangfire ile statik schedule edilmiş joblar var. Bunu backgroundservice 'e çevirip dbden okuma yapacağımız (kullanıcı random değerler girebilir her pzt 8.10 salı 16.30 da çalışsın gibi) bir yapıya geçirmede karar kılmıştık bir de Quartz'a bakayım. Teşekkürler

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

    Salih hocam teşekkürler elinize sağlık. Hangfire yada rabbit mq teknolojisi kullanılan bir projede böyle bir yapıdan yardım almak nekadar mantıklı yada gerekli olabilir?

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

      RabbitMQ ve Hangfire, proje dışında üçüncü parti uygulamalar. Genelde diğer sistemler ile haberleşmek için kullanılıyorlar. Buradaki kuyruk yapısı ise, proje içindeki parçaların birbiri ile haberleşmesi için kullanılabilir. Örneğin DDD videosunu izlediyseniz orada DomainEvents'ler vardı :) O yapı için kullanılabilirler.

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

      @@TechBuddyTR teşekkürler

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

    Hocam canlıda bana sorun çıkardı cidden bu prod 3 serverda koşuyordu testte çalışırken prodda kesinlikle çalışmıyordu

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

    Highly rec

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

    Hocam merhaba çok yararlı bir video ama tam anlamadım şeyler var . Biz bu işlemleri normal controller method a istek geldigindede yapabilirdik neden queue da beklettik gerçek projerlerdede boyle yapıldıgını duydum ama nedenini bilmiyorum .

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

      Action metod içerisinde yapsaydık tüm bu işlemleri, tüm isim'ler işlenene kadar kullanıcıyı ve request'i bekletmemiz gerekirdi ki bu gereksiz bir yük oluştururdu sistemde. Thread'lerin boşa kullanılması vs gibi. Böyle bir kuyruk yapısı dışarıdan alınan ama arka planda işleyebilecek işler olduğunda faydalı olabilir. Aslında dışarıdan alınmasına bile gerek yok. Belirli bir zaman diliminde gidip veritabanındaki kayıtları çekip, işleyebilirsiniz böyle bir kuyruk yapısı kullanarak. Asenkron şekilde işlemler yapmak istediğimizde kullanabiliriz yani kısacası.

  • @SertuncSELEN
    @SertuncSELEN Рік тому +2

    hocam 21:50 de queue.Reader.ReadAsync(); satırının önüne await konulmamasının özel bir sebebi var mı? teşekkürler

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

      Evet. Bekleme işini bu class'ın içerisinde yapmıyoruz. Onun yerine zaten ayrı bir task olarak çalışan BackgroundService içerisinde bekliyoruz. Zaten metodumuz geriye string değil ValueTask dönüyordu. Backgroundservice tarafında zaten bekleyeceğiz buradan bize kayıt gelmesini, burada da beklemek anlamsız olacaktı :)

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

      @@TechBuddyTR süper orayı kaçırmışım hocam. teşekkürler

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

    Hocam emeğinize sağlık.
    Ben bu yapıda geliştirmiş olduğum bir projeyi bilgisayar başlar başlamaz çalıştırmak istiyorum nasıl yapabilirim?
    Denedim Web Api çalışıyor fakat Background servis çalışmıyor.

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

      Sisteme inject ettiniz mi servisi?

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

      Evet Hocam.
      @@TechBuddyTR

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

      @@ugurbaran3266 o zaman sistem başladığında, Execute metodu çalışmalıydı

  • @murad-dov
    @murad-dov Рік тому +2

    Hocam merhaba web service dedikleri bumu ?

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

      Web servis dedikleri muhtemelen web api dır :)

    • @murad-dov
      @murad-dov Рік тому

      @@TechBuddyTR teşekkürler :)

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

    Merhaba kıymetli kardeşim,
    Fazla gereksiz şekilde uzatmayacağım. 0:00'dan 0:20'ye kadar dediklerin ve sözüm ona "clickbait" olan thumbnailin yüzünden buraya geldim. Bahsettiğin konsept C# ile sınırlı olan bir konsept değil. Böyle bir fonksiyon olmadan iş yapabilmek zaten mümkün değil. İşi temelinden anlatmak gibi bir yaklaşımın olsaydı bu video yeterli olabilirdi bazı kimseler için. BackgroundService'lerden bahsediyorsun, çok fazla şey yapmana gerek yok Visual Studio içinde bir Thread nesnesi oluştur sana direkt olarak propertylerinde arka plan servisi hakkında ufak infolar verecektir. Bu konu hakkında illa bi video yapacaksan, Türkiye'de zaten pamuk ipliğine bağlı olan yazılım geliştiriceleri komunitesine taş atmadan yapmalısın. Videonun devamında nelerden bahsediyorsun bilmiyorum atlayarak bi kaç bölüme baktım. Tavsiyem HangFire, Quartz gibi frameworkler hakkında bir video yapmandır. Hatta CQRS Desenini ve RabbitMQ'yu da anlatabilirsin. Tabi bu konuyu yine en iyi sen bilirsin ama ben yine de tavsiye edeyim meraklısına. Kolay gelsin

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

      Selamlar, kıymetli yorumunuz için teşekkür ederim. Ancak sanırım kanaldaki ilk videonuzu izleyebiliyorsunuz. Video içerisinde de daha önce kanala yüklediğim hem BackgroundService lerden hem de rabbitmq videolarından bahsettim. Hatta inanmayacaksınız rabbitmq, microservis, cqrs, ddd, azure servicebus, redis, docker gibi konuların içinde olsun full bir video serisi de var. Ayrıca thread nedir, task nedir, await neden kullanılır gibi kapsamlı videolar da kanalın bünyesinde mevcut. Dolayısı ile başka videolarda detaylarına girdiğim konularda detay vermekten özellikle imtina ediyorum. Bilgilerinize :)

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

      Ayrıca şunu da söylemeden edemeyeceğim; pamuk ipliğine bağlı olduğunu düşündüğünüz yazılım geliştiriciler topluluğuna elimden geldiği kadar ben de destek olmaya çalışıyorum. Sizlerin de varsa katkıları, okumak veya izlemek yolu ile istifade etmek isterim

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

      @@TechBuddyTR Kusura bakma lütfen, dediğim gibi direkt olarak küçük resme bakarak geldim. 15 yıl geçti bu senaryoların (yazılımdan bahsediyorum burada) üzerinden :) Öyleyse emeklerin için kendi adıma teşekkür ederim. İyi çalışmalar ! ^^

  • @bestekarx
    @bestekarx 6 місяців тому