Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wykonanie długiego skryptu, dzieląc go na części
Cromwell
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.09.2009

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


Mam skrypt, którego zadaniem jest pobieranie danych z pliku, następnie odpowiednie ich przerabianie.
Niestety, plik ma ponad 50mb samych informacji tekstowych, przez co skrypt się po prostu wywala.
W pliku php.ini zmieniłem maksymalny czas wykonywania skryptu, jednak to nie zupełnie to, o co mi chodziło.

Chciałbym wykorzystać rozwiązanie, które pozwoliłoby podzielić wykonanie całości na części. Coś takiego, co pozwoliłoby na wykonanie części skryptu, następnie automatyczne przeładowanie całości i zaczęcie od miejsca, gdzie skrypt ostatnio skończył.
Plus możliwość samodzielnego wznowienia skryptu w danym momencie.

Nie wiem jak to ugryźć, a także nie wiem w jaki sposób wyszukać tutaj na forum, czy w google.
Pomoże ktoś?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat
Jednak po wykonaniu całości, dane powinny być zapisane w innym pliku, gdzie używam file_put_contents. Zamienić to też?

Przyznam, że nie wiem. Wydaje mi się że nie ma różnicy ale możesz sprawdzić testowo (IMG:style_emoticons/default/smile.gif)

  1.  
  2. // z php.net/microtime
  3. function getmicrotime()
  4. {
  5. list($usec, $sec) = explode(" ", microtime());
  6. return ((float)$usec + (float)$sec);
  7. }
  8. $start = getmicrotime();
  9.  
  10. for(...)
  11. {
  12.  
  13. $roznica = getmicrotime() - $start;
  14.  
  15. if($roznica >= ($limitCzasu - 1)) // 1 sekunda zabezpieczenia
  16. {
  17. // koniec skryptu. oznaczamy aktualny stan pracy
  18. }
  19.  
  20. }
  21.  

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: 3.10.2025 - 13:38