Witam,
Bawię się z API i chce zapisać sporą ilość danych do bazy. Niestety API z którego korzystam nie udostępnia możliwości wykonania strzału w którym zwracało by mi listę tych obiektów. Żeby wyświetlić obiekt trzeba w url podać id tego obiektu. Robię to w pętli for z tym że danych jest ok 14000 i zanim te dane się załadują trzeba poczekać dość długo. I pytanie do was czy da się to w jakiś sposób przyspieszyć? Apka pisana jest w sparingu.
Pozdrawiam.
- Rejestracja:ponad 7 lat
- Ostatnio:prawie 6 lat
- Postów:6


- Rejestracja:ponad 10 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Warszawa
Zapisać do bazy
Ale napisałeś tak:
Żeby wyświetlić obiekt trzeba w url podać id tego obiektu.
To raczej pobieranie z bazy.




- Rejestracja:ponad 8 lat
- Ostatnio:około miesiąc
- Lokalizacja:Śląsk
- Postów:248
Hmmm moze wielowatkowsc i jakis parallel for :)? Jesli zalezy ci tylko na zwrotkach a nie na kolejnosci pobran to sprobuj skorzystac z parallel for nie wiem jak w Javie to macie ale w C# to Parallel.For(). Generalnie sprobj asynchronicznosci i wielowatkowsci ;)

- Rejestracja:prawie 14 lat
- Ostatnio:ponad 3 lata
- Lokalizacja:Grudziądz/Bydgoszcz
- Postów:5300
Sam zapis do bazy trwa zapewne krócej niż pobranie jednego rekordu z api, czyli optymalizację nie robisz na zapisie a na pobieraniu danych a tutaj pomoże jedynie zrównoleglanie. Nie robię w javie, ale zapewne ma coś co pozwala pobierać dane asynchronicznie, a jeśli nie no to musisz utworzyć sam dodatkowe wątki.

- Rejestracja:ponad 10 lat
- Ostatnio:8 miesięcy
- Lokalizacja:Poznań
- Postów:797
Pierwsze co to najpierw pobierz wszystkie obiekty, a potem w jednej transakcji wepchnij do bazy (obsługa transakcji jest relatywnie wolna). Samo pobieranie możesz zrównoleglić, tylko nie przesadzaj jakoś za mocno bo możesz albo ubić serwer z którego pobierasz, albo po prostu Cie odetną.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.