Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przyspieszenie działania skryptu
ts23
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 20.03.2009

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


Witam

mam problem z dość sporym instalatorem. W skrócie, skrypt instaluje różnego rodzaju aplikacje (głównie cms-y) na serwerze. Idea jest prosta - instalator kopiuje elementy aplikacji (core, dodatkowe moduły, szablony, grafikę itp) z różnych źródeł (ftp, svn, baza) na serwer, następnie odpala na serwerze odpowiedni instalator który aplikację konfiguruje i po sobie zamiata. Wszystko działa tak jak trzeba, niestety za wolno. Z uwagi na obciążenie klastra cały proces może trwać i pół godziny, podczas gdy apache ucina połączenie i wysyła internal server error po 15 minutach, nie bacząc na time limit skryptu php (skrypt kontynuuje działanie i robi wszystko co powinien, ale urywa się komunikacja i nie ma logów). Gros czasu zajmuje rozpakowywanie archiwów i kopiowanie plików w odpowiednie miejsca. I tu pytanie: jak można to przyspieszyć?
Próbowałem już zastąpić archiwum zip tar-em (Archive_Tar z PEAR) , ale nie daje to jakiejś znaczącej różnicy w czasie. Timeout apacha jest nie do ruszenia, podobnie jak trzymanie lokalnej kopii plików na klastrze (za dużo możliwych kombinacji). Posiłkowanie się exec-em też raczej nie wchodzi w grę.
na razie przychodzi mi na myśl albo podzielenie całej instalacji na krótsze procesy (wszystko jest odpalane z panelu administracyjnego via ajax), albo odpalanie crona, np. co kwadrans. Może jeszcze odzyskiwanie logów ex post (ale wtedy trzeba wiedzieć kiedy instalator skończył)
Może ktoś ma jakieś lepsze pomysły?
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
na razie przychodzi mi na myśl albo podzielenie całej instalacji na krótsze procesy (wszystko jest odpalane z panelu administracyjnego via ajax),

http://www.alternateinterior.com/2007/05/m...ies-in-php.html

Naprościej będzie odpalić ten skrypt z opóźnieniem i np. wysyłać powiadomienie na maila o zakończeniu instalacji.
Go to the top of the page
+Quote Post
ts23
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 20.03.2009

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


Cytat(erix @ 20.04.2009, 19:01:45 ) *
http://www.alternateinterior.com/2007/05/m...ies-in-php.html

Naprościej będzie odpalić ten skrypt z opóźnieniem i np. wysyłać powiadomienie na maila o zakończeniu instalacji.


Mail już jest, problem polega na tym żeby operator dostał loga na ekran ...
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No to pozostaje jakiś window.open + odświeżanie co parę sekund, a skrypt sprawdza, czy np. instalator utworzył pewien plik.
Go to the top of the page
+Quote Post
ts23
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 20.03.2009

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


Cytat(erix @ 21.04.2009, 15:51:42 ) *
No to pozostaje jakiś window.open + odświeżanie co parę sekund, a skrypt sprawdza, czy np. instalator utworzył pewien plik.

Na tym się pewnie skończy (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
guitarnet.pl
post
Post #6





Grupa: Zarejestrowani
Postów: 74
Pomógł: 4
Dołączył: 7.03.2008

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


a nie mozesz rozdzielic pliku wykonujacego instalacje od prezentujacego pasek postepu? i ewentuanie podzielic plik wykonujacy instalacje na etapy i logowac kazdy zakonczony pomyslnie etap?
wtedy wyswietlasz uzytkownikowi strone z postepem 0%, odpalasz twoj skrypt instalacji przez fsockopen w tle, ewentualnie respawn jak podzielisz na etapy instalacji zeby wywolywal sam siebie po zakonczonym etapie i za pomoca ajaxa co iles tam sekund zmieniaj zawartosc paska postepu instalacji na podstawie odczytu logow - w logach poszczegolne etapu instalacji beda zapisywac pomyslne zkaonczenie?

Ten post edytował guitarnet.pl 21.04.2009, 16:10:16
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




fsockopen" title="Zobacz w manualu PHP" target="_manual wymusi mu synchronizację ze skryptem nadzorującym...
Go to the top of the page
+Quote Post
ts23
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 20.03.2009

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


Dla potomności: w końcu wybrałem najprostsze rozwiązanie - instalator podzielony na 6 części + javascript odpalający kolejne $.getJSON po zakończeniu poprzedniego.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 02:40