Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jednoczesne wykonywanie dwóch skryptów PHP
bulimaxiu
post 22.10.2011, 16:52:16
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Witam.

Mam kłopot z jednoczesnym uruchomieniem dwóch skryptów PHP.

W pliku work_task.php jest powiedzmy długie jakieś zadanie
  1. <?php
  2.  
  3. for ($a=1; $a<=100; $a++) {
  4. $_SESSION['stan'] = $a;
  5. sleep (1);
  6. }
  7. ?>
W drugim status_reader.php odczytującym stan jest
  1. <?php
  2. echo $_SESSION['stan'];
  3. ?>

Oba skrypty uruchamiam w FF w osobnych oknach. Według mnie oba skrypty powinny działać niezależnie, jednak status_reader.php czeka aż work_task.php się zakończy i dopiero wtedy działa. Czy ktoś wie z czym to jest związane? Tak zachowuje się na profesjonalnym hostingu i na localhoscie Vertrigo.
Go to the top of the page
+Quote Post
Adi32
post 22.10.2011, 18:04:22
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Moim zdaniem host nie ma nic do tego bo chodzi o sesje. Odpal tak samo używając innych przeglądarek i bez problemu.
Musisz napisać nadawanie innego id sesji drugiemu skryptowi.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
bulimaxiu
post 22.10.2011, 20:36:44
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


No ale właśnie sęk w tym, że potrzebował bym to w jednej sesji (i w jednej przeglądarce).
Go to the top of the page
+Quote Post
CuteOne
post 22.10.2011, 21:58:46
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Tu nie chodzi o sesję smile.gif wywołanie work_task.php zablokuje PHP aż do momentu zakończenia pętli. Pośrednim rozwiązaniem jest forking (google -> php pcntl fork) ale nie wiem czy w forkowanym procesie będziesz posiadał takie samo id sesji jak w rodzicu.
Go to the top of the page
+Quote Post
Adi32
post 23.10.2011, 08:33:01
Post #5





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(CuteOne @ 22.10.2011, 22:58:46 ) *
Tu nie chodzi o sesję smile.gif wywołanie work_task.php zablokuje PHP aż do momentu zakończenia pętli.


Zablokuje PHP, ale dla tej sesji - bo przecież nie całe.

Cytat(CuteOne @ 22.10.2011, 22:58:46 ) *
Pośrednim rozwiązaniem jest forking (google -> php pcntl fork) ale nie wiem czy w forkowanym procesie będziesz posiadał takie samo id sesji jak w rodzicu.


Id sesji jest z założenia unikalne, więc raczej nie, ale sam jestem cieaw.

Ten post edytował Adi32 23.10.2011, 08:33:39


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
Noidea
post 23.10.2011, 12:08:40
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


session_write_close


--------------------
Go to the top of the page
+Quote Post
bulimaxiu
post 23.10.2011, 14:51:38
Post #7





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Działający układ: work_task.php
  1. <?php
  2. for ($a=1; $a<=100; $a++) {
  3. $_SESSION['stan'] = $a;
  4. sleep (1);
  5. }
  6. ?>
status_reader.php (bez zmian)
  1. <?php
  2. echo $_SESSION['stan'];
  3. ?>
Dziękuję Noidea.
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 Wersja Lo-Fi Aktualny czas: 25.06.2025 - 00:44