Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql][ajax] transakcje , a duża liczba zapytań
Forum PHP.pl > Forum > PHP
aeu
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
splatch
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).
aeu
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.