Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]pdo i "zawieszanie strony"
Swirek
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

Ostrzeżenie: (0%)
-----


mam problem i nie wiem z czego to wynika i jak to przeskoczyć.
mam skrypt który wykonuje kilkadziesiąt transakcji update do konkretnych rekordów i chwilę to trwa. Dane pobiera z zewnętrznego serwera. uruchamiam go w ramce, aby pracował sobie "w tle".
Tutaj mam problem jak kiedyś korzystałem z mysql_connect można było w czasie pracy działać sobie na stronie która korzystała z tej samej bazy.
korzystając z biblioteki PDO nie mogę w tym czasie nic na stronie robić ponieważ nie jest możliwe dostać się do bazy podczas działania skryptu w tle tak jakby PDO kolejkował zapytania i czekał, aż zakończę te działania w tle. Jest taki efekt zawieszenia strony dopóki nie skończy się wcześniejsze zadanie. Strona nie zawiesza się dla innych użytkowników tylko dla osoby która włączy skrypty w tle.
co może być przyczyną, że skrypty uruchomione w tle w iframe blokują całkowity dostęp do bazy? mam nadzieję, że nie namieszałem za bardzo.



--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Wydaje mi się, że to normalne działanie, przynajmniej u mnie w symfony jest tak samo - odpalam skrypt aktualizaujący dane z API i w tym momencie inne podstony mi się nie ładują. Oczywiście na innym komputerze tego nie będzie wink.gif

. To, że coś w ramce się odpala niczego nie zmienia. Możesz to zrobić ajaxem a i tak bedzie tak samo.


Może opowiadam bajki - pewien nie jestem. Sądze jednak, że to prawidłowe działanie.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Swirek
post
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

Ostrzeżenie: (0%)
-----


to mnie nie pocieszyłeś sad.gif . Może jednak jest jakiś sposób bo na zwykłym mysql_connect tak się dało


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
pasman
post
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 4
Dołączył: 16.03.2012

Ostrzeżenie: (0%)
-----


spróbuj zainicjować dwa połączenia do bazy: jedno do odczytu danych, a drugie do updatów
Go to the top of the page
+Quote Post
Swirek
post
Post #5





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

Ostrzeżenie: (0%)
-----


tylko, że korzystam z jednego obiektu i z jednego użytkownika do bazy, aby nie powielać połączeń. Mógłbym spróbować utworzyć nowe połączenie dla całkiem nowego użytkownika, ale wydaje mi się, że to nic nie da i że to rozwiązanie nie koniecznie będzie poprawne. Nie mogę też rozdzielić odczytu i zapisu bo np. przy wczytywaniu danych na stronie moje api zmienia np. statusy więc potrzebuje prawa zarówno do odczytu jak i zapisu. W sumie przychodzi mi do głowy pomysł, aby zaangażować w to crona który będzie sprawdzał jakąś zmienną i ewentualnie rozpoczynał import "poza" użytkownikiem tylko, że wtedy nie jestem w stanie pokazać aktualnego stanu pobierania. Choć może i jestem bo mógłbym po zakończeniu działania skryptu z crona podmieniać znów parametr który świadczył by o tym, że import jest już zakończony, ale czy to dobre rozwiązanie? czy może jednak znajdzie się lepsze?


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:03