Web API Entity Framework Core 6 - czy ToListAsync() jest konieczne? Jakie to daje korzyści?

0

Witam.
Zostałem zmuszony do skorzystania z EF i zauważyłem, że sporo tutoriali korzysta z ToListAsync(). Czy przypadkiem to nie jest "dodatkowy krok" dla programu, który wpływa na czas zwracanego wyniku? Jakie korzyści jeszcze korzyści niesie za sobą taka konwersja?

0

Co jeżeli twoje query potrzebuje np. 15 sekund?

0

Rozumiem, że jak drugi odpyta ten endpoint to będzie musiał poczekać, aż ten pierwszy odbębni swoje 15 sekund? 🤔

1

A wiesz po co się w ogóle używa asyncowe wersje? Że jak baza będzie mielić te swoje 15 sekund, to ten wątek który ją wolał może być zwrócony do puli i robić coś innego.

0

Wszystko wskazuje na to, że właśnie nie wiem 🤦‍♂️ To jest coś typu, że wszyscy tak robią to ja też. Rozumiem, że takie rozwiązania są potrzebne w API, które daje globalny dostęp jakieś grupie użytkowników, gdzie zapytań w ciągu minuty może być tysiące, np.: Allegro. Czy w API, które jest backendem i nie udostępnia się "na zewnątrz" ma jakieś korzyści z tego, że jest asynchroniczne?

1
AdamWox napisał(a):

Wszystko wskazuje na to, że właśnie nie wiem 🤦‍♂️ To jest coś typu, że wszyscy tak robią to ja też. Rozumiem, że takie rozwiązania są potrzebne w API, które daje globalny dostęp jakieś grupie użytkowników, gdzie zapytań w ciągu minuty może być tysiące, np.: Allegro. Czy w API, które jest backendem i nie udostępnia się "na zewnątrz" ma jakieś korzyści z tego, że jest asynchroniczne?

Taka analogia: Czy pisać ładny kod czy może spaghetti bo tylko ja go będę utrzymywał. Rób async. Nie zaszkodzi a nie wiesz jak w przyszłości się to rozwinie.

1
AdamWox napisał(a):

Wszystko wskazuje na to, że właśnie nie wiem 🤦‍♂️ To jest coś typu, że wszyscy tak robią to ja też. Rozumiem, że takie rozwiązania są potrzebne w API, które daje globalny dostęp jakieś grupie użytkowników, gdzie zapytań w ciągu minuty może być tysiące, np.: Allegro. Czy w API, które jest backendem i nie udostępnia się "na zewnątrz" ma jakieś korzyści z tego, że jest asynchroniczne?

Nie, nie ma żadnych. Sam async/await dodaje dodatkowy narzut czasowy związany np z użyciem maszyny stanów..

Użycie async/await jest wskazane wtedy kiedy wiesz że aplikacja będzie używana przez wielu klientów. Dzięki temu wątek zamiast czekać zblokowany na wynik zapytania przez minutę zostaje zwrócony do puli wątków i może w tym czasie obsłużyć kolejne 150 requestów.

Ale tak jak pisze @szydlak: nie wiesz jak się system rozwinie w przyszłości i lepiej może pisać to myśląc o najgorszym

1 użytkowników online, w tym zalogowanych: 0, gości: 1