![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 0 Dołączył: 30.06.2010 Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Posiadam skrypt, którego wykonanie trwa bardzo długo. Zabawa z set_time_limit() też nie pomaga. Oczywiście przy użyciu tego atrybutu skrypt potrafi pracować o wiele dłużej niż bez tego, ale i tak jest to za mało, aby skrypt podołał do końca, dlatego zastanawiam się czy da się jakoś zrobić odświeżanie, powiedzmy co 20 sekund, a po odświeżeniu skrypt zaczynałby pracę od momentu, w którym skończył przed odświeżeniem? Wiem, że można kombinować z przekierowaniami, np.: Kod test.php?zacznij_id=545 w gecie można wrzucić miejsce, w którym zatrzymał się skrypt i viola, aczkolwiek nie do końca mi to rozwiązanie odpowiada. Da się bezpośrednio takie odświeżenie wrzucić w skrypt i zacząć pracę od momentu, w którym skrypt zakończył działanie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie php w wersji CLI czyli z konsoli nie ma limitu czasu wykonania domyślnie.
Aczkolwiek jeżeli to nie jest VPS lub Dedyk to na 90% takie ograniczenie jest ustalone. Co do odświeżania to możesz bieżący progres zapisywać np. w pliku i przy odświeżeniu sprawdzić czy plik istnieje i odczytać początek od którego ma zacząć. Po skończeniu plik usuwasz i tyle. Dodatkowo w skrypcie dzięki temu możesz ustalić limit np. 500 operacji i koniec. Tak odpalany skrypt aż będzie brak wyników. Wtedy tylko do Crona powiedzmy co 10 min. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 23:49 |