Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekroczony maksymalny czas wykonywania skryptu
lichu10
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 3.06.2004
Skąd: Włocławek

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


Przy wykonywaniu skryptu instalacji galerii (wykonuje ona miniaturki obrazków oraz zapisuje informacje do bazy danych) otrzymałem następujący komunikat o błędzie:

  1. <?php
  2. Fatal error: Maximum execution time of 10 seconds exceeded in /srv/www/htdocs/web1301/html/cms/gal_miniaturka.php on line 24
  3. ?>


Skrypt ten zdołał wykonać 38 miniaturek (a powinien w tym przypadku ok. 180)

Kod pliku ze względu na wydajność zawiera następujące elementy:
- zainclude'owany plik zawierający funkcję tworzącą miniaturki
- pętlę przeszukującą dany folder ze zdjęciami i wykonującymi w/w funkcję oraz dodającą dane o kazdym obrazku do bazy danych


Problem jest oczywisty. Chciałbym rozwiązać go poprzez modyfikację instalatora galerii aby działał w następujący sposób:
Każdorazowe utworzenie miniaturki przerzuciłbym na osobny plik - czy serwer da się nabrać na to że zamiast jednorazowego wykonania wszystkich miniaturek wykonam pod rząd wiele wywołań tego samego skryptu?

Jak to zrobić?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pentel
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


  1. <?php
  2. Fatal error: Maximum execution time of 10 seconds exceeded
  3. ?>

Właśnie dlatego 9 sekund.
Przeczytaj jeszcze kilka razy co napisał kicok, to jest bardzo pomysłowe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Skoro skrypt może wykonywac się maksywmalnie 10 sekund, to chodzi o to, żeby pętla wykonywała się krócej, np. 9 sekund (wykonując pewną ilość miniaturek), po czym przerywała swoja pracę. Header location przeładowywałby stronę, i pętla zaczynałaby pracę od tego miejsca, gdzie skończyła ostatnim razem, czyli jeśli pętla zdążyła zrobić np. 15 miniaturek w ciągu tych 9 sekund, to po przeładowaniu zaczynałaby od 16. miniaturki. W ciągu kolejnych 9 sekund zrobiłaby podobną liczbę miniaturek, i znowu nastepowałoby przeładowanie strony i skrypt zacząłby by od miejsca, w którym ostanio skończył... i tak aż do usranej śmierci albo do momentu, w którym pętla wykonałaby miniaturki wszystkich zdjęć z tablicy. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
A informacja, na którym zdjęciu pętla skończyła po 9. sekundzie, przenosi się poprzez $_GET.

Pozdrawiam

PS. Aha, na wypadek gdybyś nie wiedział to 'kończysz wykonywanie skryptu' znaczy, że po header location dajesz
  1. <?php
  2. ?>


Ten post edytował pentel 15.07.2007, 12:51:58
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 23:08