Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Php zamula stronę
sasiadstar
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Witam
napotkałem taki problem i nie wiem jak za bardzo to rozwiązać.
Skrypt przetwarza pliki w sposób automatyczny wrzucam i mogę wyjść ze strony.
Problem w tym że jak się "rozhula" to następny użytkownik traci możliwość wejścia na stronę bo strona się kręci i kręci aż do momentu zakończenia działania skryptu w tle.
Jak pohamować zapędy skryptu na moc obliczeniową? albo coś w tym stylu.
Go to the top of the page
+Quote Post
bostaf
post
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Spróbuj z proc_nice albo - jeśli pliki przetwarzane są w pętli - dodać sleep albo usleep po zakończeniu każdej iteracji - w ten sposób oczywiście przedłużysz czas wykonywania całej sekwencji operacji, ale każdy sleep zrobi lukę dla innych procesów.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Opisz trochę dokładniej jak działa ten proces.
Go to the top of the page
+Quote Post
sasiadstar
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Wrzucam plik tekstowy (lista m3u), może mieć kilka kilka kB albo MB
plik jest rozbierany na czynniki pierwsze linia po lini
poniżej próbka
#EXTINF:-1 group-title="podstawowe" tvg-id="" tvg-name="" tvg-logo="WP_TV.png",WP TV
https://av-cdn-1.wpimg.pl/tv24/ngrp:wp1/chu...t_b1628000.m3u8
Sprawdzane jest czy każda linia pasuje do wzorca tj czy ma nazwe, czy nazwa pasuje do bazy danych czy jest adres url
Jeżeli tak to tworzy tablice temp , jak to skończy dodaje do głównej bazy danych usuwając duplikaty url i dodając adres obrazka i epg.

W oddzielnym skrypcie sprawdza czy url jest czynny czy nie i usuwa wadliwe tabele a na koniec generuje jeden plik z podstawionymi danymi
Raz dziennie w nocy o północy będzie analizował bazę danych pod kontem ważności linków, jak padnięty to aut z bazy danych i generowanie listy od nowa

i problem jest przy analizowaniu pliku wsadowego bo ma dużo do roboty.

Sprawdzę z usleep
Jakie czasy proponujecie 100-200ms ? czy dłużej
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Ale sam plik wysyłasz po prostu skryptem a potem jakiś cron to mieli czy przez Ajax pakujesz asynchronicznie?

Bo ja bym to zrobił na zasadzie crona.
Czyli robisz upload pliku do jakiegoś katalogu. Potem cron co 1 min odpala skrypt który mieli po 1 pliku. Dodatkowo do ustawia lock tak aby kolejny cron nie zadziałał dopóki ten się nie skończy.
W ten sposób nie powinieneś mieć problemów. Chyba że tu wchodzi w grę moc serwera który to mieli wtedy dodatkowo dokładasz proc_nice() na below normal. i powinno pomóc,
Go to the top of the page
+Quote Post
sasiadstar
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Plik wysyłam ajaxem potem mam stronę wyboru czy zrobić to automatycznie czy ręcznie.
Jak auto wysyłam zadanie do pliku php jakie pliki ma przetrawić i na tym się kończy praca użytkownika.
W manualu wyświetla pasek postępu potem pokazuje błędne nazwy do poprawy a a koniec można sobie taka listę pobrać.
także spróbuje może z tym usleep narazie bo proc_nice wywala mi błąd
Fatal error: Uncaught Error: Call to undefined function proc_nice()
Nie wiem czy to wina tego ze pod windowsem to mam na xampie? bo jak tak to spróbuje na normalnym serwerze

Czy proc_nice();
mam umieścić w pierwszym skrypcie czy w każdym który będzie wywoływany z tego pierwszego ?
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Cytat
proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. This means that proc_nice() is not available on Windows.


Swoją drogą właśnie przeglądam changelog PHP 7.2 i jest:

Cytat
proc_nice() is now supported on Windows platforms.


Ten post edytował viking 10.06.2017, 08:11:16


--------------------
Go to the top of the page
+Quote Post
sasiadstar
post
Post #8





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Wracam do tematu
1 Mam PHP 7
2 To nie o to tu chodzi, skontaktowałem się z hostingiem i mi powiedzieli że wszystko działa OK (obciążenie) a problemem jest limit procesów php równy 4
Co kolwiek to znaczy to jest problemem.
I co z tym fantem teraz zrobić? i o co w ogóle z tymi limitami chodzi czy uruchomienie 4 razy pliku nazwa.php czy to jakoś inaczej działa

Nie rozumiem jednej zeczy jakim cudem w trybie manualnym gdzie pokazuje sie pasek postępu użytkownikowi można kilka stron otworzyć i jest ok.

Ten post edytował sasiadstar 10.06.2017, 09:08:53
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: 21.08.2025 - 14:49