![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem z ogarnięciem dużej liczby zapytań do bazy danych, a mianowicie... Wysyłam zapytanie do serwera SOAP i otrzymuje odpowiedź w postaci tablic (nuSoap) - każda tablica zawiera 25 rekordów, liczba tablic nie jest z góry ustalona - czyli dane pobierane są paczkami. Następnie dla każdego rekordu w pobranej tablicy generuje odpowiednie zapytania SQL (INSERT, INSERT UPDATE etc). Rzecz w tym, że mam do wykonania około 5000 zapytań i oczywiście dostaje timeout z przeglądarki. Nie chce ustawiać wartości timeoutu z poziomu PHP (bo tak jak pisałem liczba pobranych tablic nie jest ustalona, więc ciężko przewidzieć jaki by timeout nawet ustawić). Co więcej wszystkie operacje wpisywane do bazy muszą być objęte transakcją. Czytałem o możliwości ponawiania połączenia przy użyciu advAjax, i tu by miało to zastosowanie, ale co wtedy z transakcją w SQL ? Każde ponowne wywołanie strony pobierającej dane (ze wskazaniem odpowiedniej paczki do pobrania) generuje nowe połączenie z bazą. Może macie własny sposób na tego typu operacje (z wieloma INSERTAMI UPDATAMI etc) zapobiegający timeoutowi przeglądarki. Pozdrawiam Ten post edytował aeu 18.02.2007, 14:15:23 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chodzi tu o podtrzymywanie połączenia HTTP (z tego co pamiętam jest taka możliwość). Wówczas PHP sobie normalnie mieli a Ty czekasz na odpowiednią odpowiedź.
Innym wyjściem może być odpalenie w tle skryptu (exec) i stworzenie na końcu jego wywołania (bądź w jego trakcie) jakiegoś pliku z informacją o przebiegu operacji tzn. czy wszystko poszło zgodnie z planem. Mógłbyś się odpytywać z poziomu przeglądarki i odczytywać plik, bez żadnych konsekwencji (np. zamknięcie przeglądarki nie byłoby równoznaczne z przerwaniem transakcji). -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 18.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Skryptu tj. np w CGI? W sensie, że wszystkie dane soap tylko pobieram do np "sesji" i później przekazuje do skryptu odpalonego po stronie serwera? Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 20:19 |