Sprawdź czasy jednostkowe każdej operacji (każde zapytanie SQL, każdy transfer przez "usługę sieciową", każdą "obróbkę danych"). Będziesz wiedział która operacja * 15 000 tworzy Ci wąskie gardło.
Witam,
Mam problem z czasem utworzenia pliku (czy też z operacjami które są wykonywane po jego wczytaniu). Opiszę krótko o co chodzi:
1. Użytkownik wczytuje plik xls (np. 15 000 wierszy)
2. Odczytuję po kolei każdy wiersz i na podstawie danych w wierszu wyszukuję dane w bazie i przez 2 usługi sieciowe.
3. Wyszukane dane są dodatkowo obrabiane
4. Obrobione dane są dodawane do listy
5. Z listy tworzony jest plik wynikowy (xls)
Problemem jest czas wyszukiwania i obrabiania. Aplikacja po więcej niż 30 minutach się wysypuje. Czy jest jakiś sposób, aby inaczej zrealizować to zadanie? Dodam że dla jednego wiersza z wczytanego pliku może zaistnieć nawet 10 wierszy w pliku wynikowym (przy wczytaniu 15 000 wierszy otrzymujemy 150 000 wierszy) np. użytkownik z wczytanego wiersza będzie miał 10 kont w banku. Myślałem o zrobieniu joba który generował by plik w nocy ale to raczej odpada.
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „wroclaw-jug”.
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do wroclaw-jug...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
Sprawd� czasy jednostkowe ka�dej operacji (ka�de zapytanie SQL, ka�dy transfer przez "us�ug� sieciow�", ka�d� "obr�bk� danych"). B�dziesz wiedzia� kt�ra operacja * 15 000 tworzy Ci w�skie gard�o.
Mam problem z czasem utworzenia pliku (czy te� z operacjami kt�re s� wykonywane po jego wczytaniu). Opisz� kr�tko o co chodzi:
1. U�ytkownik wczytuje plik xls (np. 15 000 wierszy)
2. Odczytuj� po kolei ka�dy wiersz i na podstawie danych w wierszu wyszukuj� dane w bazie i przez 2 us�ugi sieciowe.
3. Wyszukane dane sďż˝ dodatkowo obrabiane
4. Obrobione dane sďż˝ dodawane do listy
5. Z listy tworzony jest plik wynikowy (xls)
Problemem jest czas wyszukiwania i obrabiania. Aplikacja po wi�cej ni� 30 minutach si� wysypuje. Czy jest jaki� spos�b, aby inaczej zrealizowa� to zadanie? Dodam �e dla jednego wiersza z wczytanego pliku mo�e zaistnie� nawet 10 wierszy w pliku wynikowym (przy wczytaniu 15 000 wierszy otrzymujemy 150 000 wierszy) np. u�ytkownik z wczytanego wiersza b�dzie mia� 10 kont w banku. My�la�em o zrobieniu joba kt�ry generowa� by plik w nocy ale to raczej odpada.
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
----
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝
Odpowiedź brzmi usługa sieciowa. Wszystko co się dzieje po wczytaniu pliku jest tak optymalne jak się tylko da. Sprawdzaliśmy to krok po kroku w 3 osoby. Czytałem o bibliotece spring batch. Można w niej w tym samym czasie uruchomić kilka jobów. A co gdybym rozdzielił pliczek pomiędzy te joby, a na koniec scalił wyniki? Nie wiem może piszę głupoty, ale już kombinuję w każdą stronę. Nie znam tej biblioteki, ale może ktoś z was zna i napisze mi czy tak się da.
W dniu 2013-03-30 13:54, Kamil Paśko pisze:
Sprawdź czasy jednostkowe każdej operacji (każde zapytanie SQL, każdy transfer przez "usługę sieciową", każdą "obróbkę danych"). Będziesz wiedział która operacja * 15 000 tworzy Ci wąskie gardło.
W dniu 30 marca 2013 13:03 użytkownik Sebastian Chojnacki <chojna...@gmail.com> napisał:
Witam,
Mam problem z czasem utworzenia pliku (czy też z operacjami które są wykonywane po jego wczytaniu). Opiszę krótko o co chodzi:
1. Użytkownik wczytuje plik xls (np. 15 000 wierszy)
2. Odczytuję po kolei każdy wiersz i na podstawie danych w wierszu wyszukuję dane w bazie i przez 2 usługi sieciowe.
3. Wyszukane dane są dodatkowo obrabiane
4. Obrobione dane są dodawane do listy
5. Z listy tworzony jest plik wynikowy (xls)
Problemem jest czas wyszukiwania i obrabiania. Aplikacja po więcej niż 30 minutach się wysypuje. Czy jest jakiś sposób, aby inaczej zrealizować to zadanie? Dodam że dla jednego wiersza z wczytanego pliku może zaistnieć nawet 10 wierszy w pliku wynikowym (przy wczytaniu 15 000 wierszy otrzymujemy 150 000 wierszy) np. użytkownik z wczytanego wiersza będzie miał 10 kont w banku. Myślałem o zrobieniu joba który generował by plik w nocy ale to raczej odpada.
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „wroclaw-jug”.
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do wroclaw-jug...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „wroclaw-jug”.
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do wroclaw-jug...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „wroclaw-jug”.
Aby anulować subskrypcję tej grupy i przestać otrzymywać z niej wiadomości, wyślij e-maila do wroclaw-jug...@googlegroups.com.
Więcej opcji znajdziesz na https://groups.google.com/groups/opt_out
Timeout jak rozumiem jest gdzie� na jakim� webie dla u�ytkownika ? M�g�by� zrobi� tak ,�e �adujesz ten plik do jakiego� bufowa (w szczeg�lnym przypadku po stronie serwera zapisujesz go poprostu na dysku) , a na webie lub w jakim� UI dajesz info userowi, �e trwa przetwarzanie danych czy co� w ten dese�.Potem uruchamiasz zadanie (mo�e by� to jak okre�li�e� "job" , albo odpalony zwyk�y w�tek, ktory wykonuje prac� - odpytanie tych serwis�w ,przetworzenie odpowiedzi, etc). Gdy przetwarzanie si� zako�czy zwracasz do web'a lub UI informacje o zako�czonym zadaniu i �e plik wynikowy jest dost�pny. Jest sobie taka biblioteka DWR �, kt�ra umo�liwia wywo�anie komunikatu (w tym wykonanie akcji) ze strony serwera do weba. Samo przetwarzanie mo�esz r�wniez podzieli� na kilka w�tk�w - np. rekordy od 1 do 100 robi jeden w�tek, od 101 do 200 drugi, itd.�
Pewnie mo�na te� do tego celu wykorzysta� specyfikacj� Java Servlet 3 i asynchonriczne przetwarzania request�w.
Wiadomo�� napisana przez Sebastian Chojnacki <chojna...@gmail.com> w dniu 30 mar 2013, o godz. 15:34:
Odpowied� brzmi us�uga sieciowa. Wszystko co si� dzieje po wczytaniu pliku jest tak optymalne jak si� tylko da. Sprawdzali�my to krok po kroku w 3 osoby. Czyta�em o bibliotece spring batch. Mo�na w niej w tym samym czasie uruchomi� kilka job�w. A co gdybym rozdzieli� pliczek pomi�dzy te joby, a na koniec scali� wyniki? Nie wiem mo�e pisz� g�upoty, ale ju� kombinuj� w ka�d� stron�. Nie znam tej biblioteki, ale mo�e kto� z was zna i napisze mi czy tak si� da.
W dniu 2013-03-30 13:54, Kamil Pa�ko pisze:
Sprawd� czasy jednostkowe ka�dej operacji (ka�de zapytanie SQL, ka�dy transfer przez "us�ug� sieciow�", ka�d� "obr�bk� danych"). B�dziesz wiedzia� kt�ra operacja * 15 000 tworzy Ci w�skie gard�o.
W dniu 30 marca 2013 13:03 u�ytkownik Sebastian Chojnacki <chojna...@gmail.com> napisa�:
Witam,
Mam problem z czasem utworzenia pliku (czy te� z operacjami kt�re s� wykonywane po jego wczytaniu). Opisz� kr�tko o co chodzi:
1. U�ytkownik wczytuje plik xls (np. 15 000 wierszy)
2. Odczytuj� po kolei ka�dy wiersz i na podstawie danych w wierszu wyszukuj� dane w bazie i przez 2 us�ugi sieciowe.
3. Wyszukane dane sďż˝ dodatkowo obrabiane
4. Obrobione dane sďż˝ dodawane do listy
5. Z listy tworzony jest plik wynikowy (xls)
Problemem jest czas wyszukiwania i obrabiania. Aplikacja po wi�cej ni� 30 minutach si� wysypuje. Czy jest jaki� spos�b, aby inaczej zrealizowa� to zadanie? Dodam �e dla jednego wiersza z wczytanego pliku mo�e zaistnie� nawet 10 wierszy w pliku wynikowym (przy wczytaniu 15 000 wierszy otrzymujemy 150 000 wierszy) np. u�ytkownik z wczytanego wiersza b�dzie mia� 10 kont w banku. My�la�em o zrobieniu joba kt�ry generowa� by plik w nocy ale to raczej odpada.
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
--
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝
--
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝
--
Pozdrawiam serdecznie,
Chojnacki Sebastian
--
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝
--
Otrzymujesz tďż˝ wiadomo��, poniewaďż˝ subskrybujesz grupďż˝ dyskusyjnďż˝ Google o nazwie „wroclaw-jug”.
ďż˝
Aby anulowa� subskrypcj� tej grupy i przesta� otrzymywa� z niej wiadomo�ci, wy�lij e-maila do wroclaw-jug...@googlegroups.com.
Wi�cej opcji znajdziesz na https://groups.google.com/groups/opt_out
ďż˝
ďż˝