Jump to content

Problem z czasem wykonywania skryptów


wojtekk86

Recommended Posts

Posiadam moduł do generowania plików dla porównywarek i mój problem polega na tym, że po załadowaniu wszystkich produktów moduł sie wysypuje powiedzmy, że się wyłacza i musze go zrestartowac aby działał poprawnie. Doszedłem już do tego, ze nie wyrabia mi serwer i powinienem zwiększyć czas wykonywania skryptu "set_time_limit" tylko w którym pliku jest zapisany ten parametr, żeby zwiększyćte 30s?

Link to comment
Share on other sites

Napisałem na szybko prosty skrypt który przetestuje czy można zwiększyć samodzielnie ten limit na twoim hostingu. Dodaj ten kod do nowego pustego pliku .PHP i uruchom. Jeżeli teraz limit jest 30s to skrypt podziała przez 35s i wyświetli wynik czy się udało rozszerzyć dotychczasowe ograniczenie czasowe.

 

<?php
$start = (float) array_sum(explode(' ',microtime()));
$obecnyCzasLimitu = ini_get( 'max_execution_time' );
echo 'Obecny limit czasu: ' . $obecnyCzasLimitu . ' sekund<br />';
$wydluzonyCzasLimitu = $obecnyCzasLimitu + 10;
echo 'Wydluzony limit czasu: ' . $wydluzonyCzasLimitu . ' sekund<br />';
set_time_limit( $wydluzonyCzasLimitu );
$pauzaSkryptu = $wydluzonyCzasLimitu - 5;
sleep( $pauzaSkryptu );
$end = (float) array_sum(explode(' ',microtime()));
echo "Czas dzialania skryptu: ". sprintf("%.4f", ($end-$start))." sekund";
?>

  • Like 1
Link to comment
Share on other sites

Napisałem na szybko prosty skrypt który przetestuje czy można zwiększyć samodzielnie ten limit na twoim hostingu. Dodaj ten kod do nowego pustego pliku .PHP i uruchom. Jeżeli teraz limit jest 30s to skrypt podziała przez 35s i wyświetli wynik czy się udało rozszerzyć dotychczasowe ograniczenie czasowe.

 

<?php
$start = (float) array_sum(explode(' ',microtime()));
$obecnyCzasLimitu = ini_get( 'max_execution_time' );
echo 'Obecny limit czasu: ' . $obecnyCzasLimitu . ' sekund<br />';
$wydluzonyCzasLimitu = $obecnyCzasLimitu + 10;
echo 'Wydluzony limit czasu: ' . $wydluzonyCzasLimitu . ' sekund<br />';
set_time_limit( $wydluzonyCzasLimitu );
$pauzaSkryptu = $wydluzonyCzasLimitu - 5;
sleep( $pauzaSkryptu );
$end = (float) array_sum(explode(' ',microtime()));
echo "Czas dzialania skryptu: ". sprintf("%.4f", ($end-$start))." sekund";
?>

 

super sprawa, będę polecał innym ;)

Link to comment
Share on other sites

Temat do zamknięcia niestety nie jestem w stanie zmienic tego parametru a technicy z hostingu gdzie utrzymywany jest sklep (pomijam fakt, że jest to jeden z wiekszych operatorów w Polsce) zaproponowali mi dokupienie pakietu, w między czasie pojawiły sie kolejene problemy związane z liczbą zapytań do serwera i przekraczaeniem parametrów bezpieczeństwa po kolejenj rozmowie z technikiem usłyszałem "niech pan nie dodaje już produktów lub poszuka sobie innego hostingu" i to była jedyna mądra rzecz jaką powiedział :). Zakupiłem sobie VPS i jestem w trakcie przenoszenia sklepu.

Link to comment
Share on other sites

(pomijam fakt, że jest to jeden z wiekszych operatorów w Polsce

 

najwięksi operatorzy w polsce oferują największy chłam ;) także nie ma się co dziwić, polecam forum webhostingtalk.pl

można tam znaleźć naprawdę dobre oferty które są w cieniu "mainstreamowych" operatorów, którzy na marketing i reklamę wydają krocie

 

btw. skąd vps? :)

Link to comment
Share on other sites

  • 1 year later...
  • 2 months later...

 

Musisz zrobić to w pliku konfiguracyjnym php.ini

Odszuać coś takiego : max_execution_time

ini_set('max_execution_time', 300); //300 sekund = 5 minut

Wprowadzam korektę - widocznie myślałem o czym innym i robiłem co innego :)

Powinno być tak jak mówisz Vekia. Odblokowanie opcji wiąże się z usunięciem średnika - zablokowanie jest poprzez jego dodanie. Wartość 1800 to czas serwera.

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 1800  
Link to comment
Share on other sites

  • 4 years later...

Witam,

Czy jest sposób na zwiększenie czasu wykonywania skryptu w presta 1.6.1.3? Pytam z dwóch powodów.

1. Przy próbie aktualizacji 1-click update wyskakuje komunikat: PHP's max_execution_time setting has a high value or is disabled entirely (current value: 60 seconds) i te 60 sec to jest maximum jakie mogę ustawić.

2. Przy ponownym generowaniu miniatur: Tylko część zdjęć została zregenerowana, upłynął limit czasu serwera.

 

Link to comment
Share on other sites

Czas wykonywania skryptu nie jest zależny od presty a od konfiguracji serwera.

Podczas generowania miniatur po pierwszej nieudanej próbie odznacz opcje usuwania wcześniejszych zdjęć tak każda następna próba spowoduje że w końcu wszystkie miniatury zostanż wygenerowane.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...