WebApi Task Async Benchmark | Await Task | Async Task Api

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ย. 2024

ความคิดเห็น • 35

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 2 ปีที่แล้ว +7

    Sabah karanlıkta sırf bu videoyu izleyip ben de denemek için 2 saat erken geldim işe :) Yıllardır sorun yaşadığım, yüzlerce video izleyip ve makale okumuş olmama rağmen hala tam oturtamadığım, bana göre güvenlikten sonra en kritik konu olan bu konuyu sonunda anlayabildim hocam. Sadece 3 videoda tüm sorularıma cevap verdiniz. Ne kadar teşekkür etsem az. Bu verdiğiniz bilgileri bu şekilde bir anlatımla hiçbir yerde bulamıyordum. Burada bizimle paylaştığınız bilgilerin çok değerli hatta paha biçilmez. Çok çok teşekkür ederim hocam. Emeğinize sağlık. Tekrar iyi ki varsınız.

  • @ozancakin3922
    @ozancakin3922 2 ปีที่แล้ว +6

    Salih Bey, yine çok açıklayıcı bir eğitim videosu çekmişsiniz emeğinize sağlık

  • @aydemirzade34
    @aydemirzade34 2 ปีที่แล้ว +2

    Harika! Çok güzel eğitim. Teşekkürler

  • @TyfnCTN
    @TyfnCTN 2 ปีที่แล้ว +4

    Eline sağlık bu hafta tamda multi treading işleriyle uğraştım :) temiz ve gayet başarılı anlatım her zaman ki gibi 😎

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +4

      Multi threading önemli ve üzerinde gerekli zamanın harcanması gereken bir konu bence. Faydalı olması dileği ile.

  • @asadullazadeh
    @asadullazadeh 2 ปีที่แล้ว +2

    Mükemmel anlatım olmuş

  • @ugursesen7629
    @ugursesen7629 2 ปีที่แล้ว +2

    Salih hocam döktürüyorsun her zamanki gibi :)

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +1

      Estağfurullah. İyi seyirler

  •  2 ปีที่แล้ว +2

    Elinize sağlık.

  • @ermekbakyt5507
    @ermekbakyt5507 2 ปีที่แล้ว +3

    Allah razi olsun! Cok guzel bir ders olmus!

  • @muzafferakn6834
    @muzafferakn6834 2 ปีที่แล้ว +1

    Hocam elinize sağlık çok güzel bir eğitim olmuş. Yalnız request count bilgisini kullanmadığınız 26 dakika boyunca elim ayağım titredi bağırdım ama duymadınız. En sonunda farkettiğinizde bi rahatlama geldi :D

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +1

      Çok teşekkür ederim. Arada bu tarz detaylar kaçabiliyor video sırasında :-) Geç olsun da güç olmasın

  • @BatuhanxBayram
    @BatuhanxBayram ปีที่แล้ว

    çok güzel bir video olmuş elinize sağlık

  • @sametersoy6806
    @sametersoy6806 2 ปีที่แล้ว +1

    Bu karşılaştırma örnekleri yazlımda çok değerli ama çok az maalesef bunun için öncelikle teşekkür ederiz. Monolitic vs microservis tarafında da böyle bir istek cevaplama örneği olsa çok değerli olurdu diye düşünüyorum.

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +2

      Çok teşekkür ederim. Bu örneğin Monolith ve Microservice tarafında olmasının çok bir önemi yok aslında. Çünkü her webapi projesi bu şekilde çalışıyor olacaktır. :)

    • @sametersoy6806
      @sametersoy6806 2 ปีที่แล้ว

      @@TechBuddyTR Hocam hem cevap için hem her video için ayrı yarı teşekkürler. Bende dediğinize katılıyorum sanırım kendi aklımdan geçeni doğru anlatamadım. Micro servislerde login için ayrı api projesi order için ayrı api projesi vs yapıyoruz ve bu projeler birbirleri ile iletişim halinde monolith de tek proje her şey kendi içinde çalışıyor onu kastetmiştim. Mesela login olup sepete ürün ekleyip ödemesini yapan 1000 istek göndersek hem monolith ve micro servis projesine sunucu yükünü ve işlem sürelerini görsek diye hayal etmiştim. Umarım bu sefer anlatabilmişimdir :)

  • @_ahmetkar
    @_ahmetkar หลายเดือนก่อน

    Merhabalar hocam, bende bir kere sync veya async seçsemde request count 16 deyip çalıştırdığımda TotalTime : 2100 gibi birşey çıkıyor request countu bir bir artırıp sonraki çalıştırmalarımda hep Totaltime : 63 ms , totaltime : 68 ms vs gibi değerler çıkıyor. Neden olabilir ?

  • @mansurdegirmenci8618
    @mansurdegirmenci8618 2 ปีที่แล้ว

    güzel anlatım olmuş hocam teşekürler. yalnız kafaya takılan soru şu olabilir o zaman her şeyi async yapalım dümdüz gidelim :)) bu durumun eksileri yokmudur? Sync yapmanın async yapmaya göre artısı nedir hocam?

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว

      eğer her şeyi async yapabiliyorsak yapalım zaten :) Hayatımızı kolaylaştırıyor elbette ama bunun da bir maliyeti var. Şöyle bir arama yaparak biraz daha detaylı bilgiye ulaşabilirsiniz belki, ".net async state machine"

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 2 ปีที่แล้ว +2

    Hocam anlamadığım bir konu daha var. Sizin kanalda arattım ama bulamadım. Başkalarının anlatımını izliyorum hala ama gerçekten de onları izlemek zaman kaybı gibi geliyor artık bana. Ne işe yaradığını, kullanım alanlarını, hangi durumlarda kullanılabileceğini, çalışma mantığını hiç kimse sizin gibi anlatmıyor. 4 işlem üzerinden gösteriyorlar hep. Sizin gibi gerçek hayatta kullanımından bahsetmiyorlar. Bir tek ahanda hadi kullanalım şunu şuraya koyuyoz bunu buraya koyuyoz diyip bitiriyorlar videoları :) Konu ne diye sorduğunuzu duyar gibiyim :) Tabiki Delegeler :) Bu Delegate kavramını da rica etsem bize anlatabilir misiniz? Delegatelerin bir tek formlar, methodlar, sınıflar arasında iletişime yaradığı gibi bir izlenimim var izlediğim okuduğum kaynaklardan ama nedir ne değildir hala bilmiyorum.
    Bu konunun yeniden aklıma gelmesine vesile olan şey bir parmak okuyucu cihazın sdksını kullanırken f12 f12 yapa yapa sonunda events isimli bir interface'e ulaşıp içindeki EventHandlerlara da f12 yapınca birer satırlık delege oluşturulduğunu görmem oldu.
    Gidiş yolu şu şekildeydi f12 yapınca.
    public class CZKEMClass : IZKEM, CZKEM, _IZKEMEvents_Event
    public interface _IZKEMEvents_Event
    event _IZKEMEvents_OnDoorEventHandler OnDoor;
    public delegate void _IZKEMEvents_OnDoorEventHandler(int EventType);
    Ne amaçla kullanıldığını hiç kestiremiyorum şu an. Tamam bu sdk hazır, belki hiç bu kısımlarına ulaşıp kullanma ihtiyacım olmayacak ama kendi uygulamalarımda da sıfırdan delege yapısı oluşturabilip kullanabilmek istiyorum. Winforms uygulamalarında dinamik olarak farklı formlara veri gönderme gibisinden de kullanılıyor sanırım ama emin değilim. Bir video da Delegeler için gelir mi acaba? :)
    Bir ekleme daha:
    Yukarıda verdiğim bilgilerde delegate ve ilgili delege ismiyle event oluşturulmuş. Client tarafında eventa += yaparak bir metod veriyoruz kullanıyor. Cihazda birisi parmak okuttuğunda direkt bu event tetikleniyor. Anlayamadığım kısımlardan biri şu. Bu event ve delege olayı sanki bir listener gibi çalışıyor. Ama cihaza sürekli yeni veri var mı yok mu diye gidip bakmıyor olmasına rağmen, cihazda parmak okunduğunda nasıl oluyor da, cihaz veri gönderip bu eventı tetikleyebiliyor? Bu cihazın içinde var olan bir özellik mi? IP ve Port ile bağlanınca bağlı neresi varsa oraya veri mi gönderiyor.Bunu nasıl yapıyor olabilir ki anlamıyorum hocam :) Mesela ben winform uygulamamı kullanan tüm kullanıcılarıma db kullanmadan direkt bir mesaj ya da bildirim gönderebilir miyim? Mantığı nedir tam olarak?
    Çok teşekkür ederim.

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +2

      Selamlar,
      delegate ler metodlarımızın referansını tutan nesnelerdir. Bu konu yazarak anlatması biraz zor olan bir konu. Video için yakın dönemde gündemime alabilirim :-)

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 2 ปีที่แล้ว +1

      @@TechBuddyTR Çok teşekkür ederim hocam. Sabırsızlıkla bekliyor olacağım :)

    • @saidcodesov2114
      @saidcodesov2114 2 ปีที่แล้ว +1

      Eger dogru anladiysam konuyu :) soru guzel dostum . 1)delegate arkada nesne olaraq methodun referansini sakliyor(yani bellekdeki methodun addressini ) ve gerekdiginde call ediyorsun.....2) eventin isi listener gibi davranmak ola bilir amma o listener(event) neyi tetikleyecek ? delegate'i tabiiki ,
      delegate == method . Dusunceme gore mantigi bu, programatik olaraq programda methodlari delegeler ile yazmak ve cagirmak, buyuk projelerde yuksek avantaj sagliyor. Cihazda surekli yeni veri varmi yokmu bakib bakmamasida methodun algortimasi ile alakali ola bilir. Cihaz veriyi barmak izinden aliyor ve internet(local olabilir) yoluyla, aldigi datani veritabanina gonderiyor eger veritabaninda eslesen "barmak verisi" (kimlik (ID)) varsa ---> return edib diger islemlere geciyor .Eger barmak okuyucuda "cache" mekanizmasi varsa gecici olaraq hizli calismasi amaciyla barmak izi ID'leri kendi dahili depolama belleyinde saklayabilir. Dusundugume gore anlamadigin konu barmak izi teknolojisi, onuda anlatirdim amma uzun konu, karisiklik ola bilir :) . Kisaca ozetlemek gerekirse :1) Barmak okuyucuya barmak koyulur 2)Sensor aktivlenir 3) Tarayici barmak izini gorur 4) Barmak izini ID'ye (baska bir ozellikde ola bilir) gore okumak icin database'e istek gondermek icin Eventi tetikler, Eventde methodu(delegate)'i tetikler 5) Db'e eslesen ID varsa veya yoksa ona gore davranilir

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 2 ปีที่แล้ว +1

      @@saidcodesov2114 çok teşekkür ederim dillerinize sağlık çok güzel anlamışsınız 😊🙏

    • @saidcodesov2114
      @saidcodesov2114 2 ปีที่แล้ว

      @@teknolojiuzmaniburada Rica ederim , teknolojide birlik ve bir birimize yardim etmek ve kafa kafaya vurub gelismek icin variz :0 :))))

  • @oyunkompetan7123
    @oyunkompetan7123 2 ปีที่แล้ว

    Salih Bey konu ile alakalı 2 videoyu da izledim hala istediğimi yapamıyorum. 2 siteden api istekleri ( client.GetAsync return ) 2 siteden de websocket dinliyorum ( client.ConnectAsync SendSocketMessage ). api de sorun çıkmıyor. Fakat iş websocket e geldiğin işler karışıyor. Websocket ten bağlantıyı kesemiyorum sürekli paketler geliyor ve içinde sürekli dönen while döngüsü var iş hiç bitmiyor. İş bitmediği içinde birinin bitip diğerini çalıştır gibi bir seçeneğim olmuyor. Ben saçma bir şekilde 3 program çalıştırıyorum. 1.si websocket 542 kalalı dinliyor ve .txt ye yazıyor , 2.si 613 numaralı kanalı dinliyor ve .txt ye yazıyor. 3.sü. 2 api den verileri alırken Anaform da da 542 ve 613 numaralı kanalların .txt lerini alıp işleyip verileri karşılaştırıyorum. Birde saçma bir olay var kanalları dinlerken form uygulamasında kanaldan gelen paketleri kaçırırken Console ile hiç kaçırmadan alabiliyorum. API leri Anaform dan Thread lar ile çalıştırıyorum, websocketler zaten ayrı 2 program. Bunları tek bir program da toplamak istiyorum.
    Anaform = --------------------------------------------------
    API 1 = -- -- - - ------ - - - -- - - - - - -- ---- ---- - -
    API 2 = -- - - - - - -- - - - -- - - - -
    WS 1 =----------------------------------------------------
    WS 2 =----------------------------------------------------
    Umarım yukarıda yapmak istediğim şeyi anlatabilmişimdir. Bununla ilgili bir video hazırlar mısınız? Olumlu yada olumsuz dönüş yaptığınız için teşekkürler. Çalışmalarınızda başarılar diliyorum.

  • @NETHALNET
    @NETHALNET 19 วันที่ผ่านมา

    +1

  • @Furkan24664
    @Furkan24664 ปีที่แล้ว

    Benim kafam biraz karıştı , burada işi yapan threadler mi yoksa işi farklı bir yere mi taşıyor 'telefon bağlama örneginde oldugu gibi' . async durumda thread 2 işi aynı anda nasıl yapıyor alt trhread gibi bir şeyler mi var ? cevaplarsnı sevirinim.

    • @TechBuddyTR
      @TechBuddyTR  ปีที่แล้ว

      Her uygulama, Application seviyesinde bir Ana Thread üzerinde çalışıyor. Bunun dışında biz istersek farklı thread ler oluşturabiliyoruz. Teorik olarak , Task'lar ana thread'i kilitlemeyen ayrı birer alt thread gibi düşünülebilir. Eğer await ile bekleme işlemi yapıyorsak, ana threadi kilitlemeden ama ana thread de bekleme yaparak alt thread'in işini bitirmesini bekliyoruz. Eğer bir Task çağırmışsak ve await ile beklememişsek, o thread alt thread tarafından çalıştırılıp bitiriliyor ve biz ne zaman bittiğini bilmiyoruz :)

  • @someone9757
    @someone9757 2 ปีที่แล้ว +1

    asyncde 1000 tanesi nasıl aynı anda çalışıyor 12 thread varsa,sadece bekleme yaptımız için mi öyle oldu mantıklı değil bence

    • @TechBuddyTR
      @TechBuddyTR  2 ปีที่แล้ว +1

      12 thread yok, 12 fiziksel core var thread create edebilen. Bunların içinde de her biri 32 bin thread oluşturup kullanabiliyor gibi düşünebiliriz. Ama bunu set de edebiliyoruz tabi ki

    • @someone9757
      @someone9757 2 ปีที่แล้ว

      @@TechBuddyTR Hocam biraz araştırdım şimdi bizim UI olarak kullandığımız bi proje var o bir process, backend olark yine bir process bunların içinde sizin pcde 32k thread oluşturabiliyoruz. Biz backend processinin maxını 12 ye sabitledik ön tarafta hala 32k var. Anlamadığım nokta biz ön yüzden 1k istek atınca arkada 12 max thread yaptık, şimdi bu arkadaki 12 thread isteği alıyor task olarak direk ön tarafa mı döndürüyor yani öndeki 32k dan 12 tanesine yüklüyor işi ve tekrar bi 12 tane daha diye mi oluyor? Teşekkürler şimdiden.

  • @murad-dov
    @murad-dov 2 ปีที่แล้ว +1

    Hocam teşekkürler ama beynim yandı)

  • @berkdev
    @berkdev ปีที่แล้ว +1

    Çok güzel örneklerle açıklanmış. Teşekkürler.

    • @TechBuddyTR
      @TechBuddyTR  11 หลายเดือนก่อน +1

      Teşekkürler