Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonanie procesu w tle przy użyciu php
Forum PHP.pl > Forum > PHP
KryQ
Witam
Chciałbym się zwrócić do was Guru PHP z prośbą o pomoc.
Tak wiec pisze sobie skrypt uploadu i procesu pliku.

Jest to wykonaniu przy użyciu pluginu ajax upload czyli po zakończeniu wysyłania serwer zwraca odpowiedz czy plik został wysłany czy nie. U mnie przekazane jest to prostym słowem "process".
Stan proces to zbadanie zawartości wysłanego archiwum rozpakowanie go sprawdzanie indexu i wysłanie go dalej na zewnętrzne serwery (Wykonywane za jednym razem z potwierdzeniem poprawności uploadu)

I teraz zaczynają sie schody bo zamarzyło mi sie by strona informowała mnie o czynionym aktualnie kroku wiec po odpowiedzi process kolejny skrypt ajax'u wykonuje zapytania do serwera z pytaniem o stan procesu. Który próbowałem już i sesją i plikami cookies i poprzez zwykły zapis pliku na dysk notować.
Jednakże nie jest to możliwe gdyż po wykonaniu uploadu skrypt wykonuje wszystkie kroki jednak nie zapisuje sesji ani nie zwraca mi słowa process po uploadzie.

Domyślam sie że potrzebny byłby mi zewnętrzny proces obsługujący obróbkę archiwum nie wiem tylko w jakim języku to wykonać i jak pobrać aktualny stan z zewnętrznego procesu.
Mam nadzieje ze wszyscy mnie zrozumieli jeśli nie przepraszam za zawiłości smile.gif (ciężko to opisać)

Z góry dzięki za pomoc KryQ
hind
Zapisuj stan obsługi do bazy danych (sesje aktualizują się po zakończeniu działania skryptu)

Uruchomienie procesu w tle też nie jest takie fajne (do dyspozycji fork, pthread-EXPERIMENTAL, czy też proc_open/system),
w przypadku nowego procesu po konsoli, proces taki właściwie żyje do póki działa proces uruchamiający, i co więcej proces potomny blokuje rodzica do póki sam nie zakończy działania (proces staje się Zombie).

inna opcja to iframe... w tedy możesz wyświetlać komunikaty w stylu log (po ajaxie obsłuży tylko pierwszy rzut danych, a reszte zignoruje, ale iframe wyświetli wszystkie linie, nawet te które zostaną wyświetlone z opóźnieniem - ale ważne aby było wyłączone buforowanie danych wyjściowych)
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.