Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywołania systemowe w trybie nonblock, Czy da się z poziomu www?
kyeno
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.04.2008

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


Witam na forum!

Szukałem, szukałem i się nie doszukałem - więc piszę.

Czy jest możliwość uruchamiania wywołań systemowych w trybie nonblock?

Dajmy na to, że posiadamy skrypt, który w pętli wywołuje program "wget" z odpowiednimi parametrami i pod koniec każdego obiegu pisze coś w rodzaju "Ok!\n" (na razie bez dokładniejszych analiz wyjścia)

Niezależnie, czy używamy do tego metody system(), czy exec() skrypt taki uruchomiony z przeglądarki (serwowany przez defaultowo skonfigurowany apache1.3+php5) pokaże nam swój content dopiero gdy skończy pętlę i wszystkie wget-y (jeśli wcześniej nie dostanie timeouta)...

Inaczej rzecz się ma, jeżeli skrypt uruchamiany z poziomu powłoki, wówczas sam z siebie działa w trybie nonblock i wypluwa odpowiedni output przy każdym obiegu pętli.

Czy da się zrobić, aby tak samo zachowywał się przy odpalaniu z WWW?
W grę wchodzi zarówno globalna (httpd.conf), jak i lokalna (.htaccess) rekonfiguracja apache, PHP, czy cokolwiek trzeba.

Dla sprostowania dodam, że kiedyś widziałem jakąś opensource-ową galerię, która w ten sposób generowała thumbnaile używając ImageMagick, a więc pewnie też zapętlonych wywołań systemowych do jakiegoś /usr/bin/convert, czy coś. Niestety nie pamiętam co to było, więc nie mogę podejrzeć kodu. sad.gif

Z góry dzięki za wszelkie wskazówki. Pozdrowienia! smile.gif
Go to the top of the page
+Quote Post
wlamywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Hmmm nie zrobisz tak tego chyba bo php czeka na zakończenie tego system() lub exec(), dokańcza parsowanie skryptu i dopiero wysyła dane do przeglądarki...
Go to the top of the page
+Quote Post
kyeno
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.04.2008

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


Wiem, o tym właśnie mówię i zaznaczam, że ten osobliwy sposób działania ma miejsce wyłącznie w przypadku parsowania tegoż PHP przez apache-a, bo "z shella" jest zupełnie inaczej.

Naprawdę nie ma sposobu na zmianę tego zachowania?
Go to the top of the page
+Quote Post
wlamywacz
post
Post #4





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Jest jedna opcja jednak wyklucza ona php musisz użyć do tego perla, sam używam takiego systemu podczas uploadu zdjęć w swoim serwisie. Skrypt perla wywołany ze strony działa sobie i wysyła informację o postępie, następnie pobieram je ajaxem i ukazuje na stronie.
Go to the top of the page
+Quote Post
kyeno
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.04.2008

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


Hm, dzięki za sugestię, ale chyba za słabo znam Perla.

Zastanawiałem się wręcz nad AJAXem, który po stronie JS łyknie jednowymiarową tablicę/hasha urli, które trzeba zassać i sam przeiteruje te wartości za każdym razem wysyłając zapytanie do PHP o ściągnięcie pojedyńczego pliku...

"Trochę" na około, ale może...

Gdyby jednak ktoś przypadkiem trafił na ten topic i znał sposób na egzekucję skryptu w trybie nonblock - byłbym bardzo wdzięczny.

Krążenie w kółko tylko dlatego, że "technologia się nie wyrabia" zdaje się mało fajnym rozwiązaniem. :/
Go to the top of the page
+Quote Post
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


takie cos da sie zrobic...

trocvhe to moze byc skomplikowane, ale np. jak chcesz wykonac iles razy wget'a to mozna w petli je wywolac wykorzystujac ramki, z czego kazdy skrypt jak zakonczy dzialanie wyswietli w kazdej ramce OK, czyli tak jak chcesz, ale wymagałoby to paru manewrów smile.gif


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
wlamywacz
post
Post #7





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Technologia się wyrabia jednak chcesz zastosować nie te właściwą.

Drzewo zetniesz nawet nożyczkami potrwa to pół roku, a piłą w 30 minut smile.gif

Użyj js + perl
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: 20.08.2025 - 07:39