Duża ilość requestów do bazy przy korzystaniu z API

0

Hej,

Mam problem z devami i potrzebuję porady.
Mamy wystawione api, które obsługiwane jest przez lavarela i do tego autoryzacja dodatkowa tokenami za pomocą passport'a.
I teraz każdorazowe wywołanie API generuje 3 requesty do bazy. Wywołanie requestu w API do bazy w pętli, np. 90 powtórzeń wygeneruje tych requestów (autoryzacja, potwierdzenia) 270 + 90 query. Jak to można dosyć prosto "odchudzić" lub przenieść te requesty przed wywołaniem pętli?
Na razie tłumaczą się, że mechanizm (passport) stworzony jest przez mądrzejsze osoby od nas i tak musi działać. No jakoś do mnie nie przemawia to tłumaczenie :) Chyba, że się mylę i faktycznie to tak słabo działa?

1

A nie problem w tych 90 wywołaniach?
Moze należy zrobić jedno, a pobierać kolekcję (listę) ?

0

A faktycznie te 3 query Cię jakoś bolą? Zrobiłeś test performance'owy albo uruchomiłeś profiler?

Bo może nie ma co sobie tym zawracać głowy.

0

@Lilpri: Nie tylko Ty się skarżysz na dużą ilość requestów (i "zabijanie" bazy) generowanych przez laravel-passport. Tutaj raczej nic nie zrobisz, ewentualnie pozostaje Ci modyfikacja endpointów. Jeżeli masz pętlę, która generuje te requesty to "przerzuć" parametry tej pętli do back-end i tą pętlę przetwarzaj sobie "od środka" a następnie zwracaj już wszystkie wyniki na front.

0

@ZrobieDobrze: Troszkę problemem jest ilość requestów, mają zmienić zakres odpytań baz danych, aby to zmniejszyć. Zobaczymy jak wtedy performance wypadnie, pobieranie miliona rekordów do raportów.
@Riddle: Same 3 query nie, ale jak dochodzimy do ~20tys query bez sensu to już boli :) Ale faktycznie mogę to przełknąć i zobaczyć jak będzie to śmigało w warunkach produkcyjnych. Wszystko zależy od ilości jednoczesnych połączeń, jeśli będą na w miarę niskim poziomie, to nie zaboli, jak będzie ok 20tys to będzie boleć.
@leonpro778: Znaczy tak, pętla jest wywoływana na froncie, przetwarzanie w backendzie -> klient dostaje wynik na froncie/w postaci pliku do pobrania.

0
Lilpri napisał(a):

@Riddle: Same 3 query nie, ale jak dochodzimy do ~20tys query bez sensu to już boli :) Ale faktycznie mogę to przełknąć i zobaczyć jak będzie to śmigało w warunkach produkcyjnych. Wszystko zależy od ilości jednoczesnych połączeń, jeśli będą na w miarę niskim poziomie, to nie zaboli, jak będzie ok 20tys to będzie boleć.

A le boli Cię sama liczba? Czy faktycznie widziałeś że spowalnia, aplikacja nie wyrabia, etc?

0

@ Ewrybady

Dlatego lubię dobre stare serverside www.
Moda dwuwarstwowa obiecuje czasem gruszki na wierzbie, których nie umie dostarczyć.

0
Lilpri napisał(a):

@ZrobieDobrze: Troszkę problemem jest ilość requestów, mają zmienić zakres odpytań baz danych, aby to zmniejszyć. Zobaczymy jak wtedy performance wypadnie, pobieranie miliona rekordów do raportów.

??? WTF?
Kolejny kto buduje raport w technologii klientowej ?

Mając tyle serwersidowych bibliotek czy PDFowych, czy XLSowych, czy gotowe designery i egzekutory raportów???

0
Lilpri napisał(a):

@leonpro778: Znaczy tak, pętla jest wywoływana na froncie, przetwarzanie w backendzie -> klient dostaje wynik na froncie/w postaci pliku do pobrania.

No to przerzuć tą pętlę do back-endu

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