Potrzebuję uruchomić skrypt do localhost (xampp), który wygeneruje 14400 rekordów i doda je do bazy danych, ustawiłem max_execution_time = 50000000000
, nie wiem, czy mogę uczynić go nieograniczonym, ustawiając go na 0 lub -1. Ale próbowałem tego skryptu wcześniej z tym max_execution_time do 50000000000, a jednak zatrzymałem się w pewnym momencie, nie wiem, co jeszcze może ograniczyć czas wykonania, wiele razy to robiłem i jestem zmęczony czekaniem i niepowodzeniem znowu, co czy powinienem się zmienić, zanim ponownie uruchomię ten skrypt i tym razem, aby zakończyć pracę?Wykonaj wykonywanie skryptu bez ograniczeń
Odpowiedz
Będziesz musiał ustawić go na zero. Zero oznacza, że skrypt może działać wiecznie. Dodaj następujące na początku skryptu:
ini_set('max_execution_time', 0);
można znaleźć w dokumentacji PHP max_execution_time
zauważyć, że:
set_time_limit(0);
będzie miał ten sam efekt.
co jeśli ustawię go w pliku php.ini na 0? czy zacznie działać? – TooCooL
Tak, ale nie ustanowiłbym tego na całym świecie. Oznaczałoby to, że na przykład nieskończona pętla (skryptu i nietestowanego lub hack) może zawiesić serwer. Używałbym 'max_execution_time = 0' z rozwagą i tylko jeśli jest to wymagane. – hek2mgl
Muszę go uruchomić, gdy nie zrobię tego w lokalnej lokalizacji. Zmienię to później, ważne, żeby to działało, a nie zatrzymywało skryptu, zanim zakończy dodawanie rekordów. – TooCooL
Twój skrypt może się zatrzymać, nie z powodu przekroczenia czasu PHP, ale z powodu przekroczenia limitu czasu w przeglądarce, do której uzyskujesz dostęp do skryptu (np. Firefox, Chrome itp.). Niestety rzadko istnieje łatwy sposób na przedłużenie tego limitu czasu, a w większości przeglądarek po prostu nie można tego zrobić. Opcją, którą tu masz, jest dostęp do skryptu przez terminal. Na przykład w systemie Windows chcesz się upewnić, że plik wykonywalny PHP jest w zmiennej PATH, a potem myślę, że wykonanie:
C:\path\to\script> php script.php
Lub, jeśli używasz CGI PHP, myślę, że to:
C:\path\to\script> php-cgi script.php
Dodatkowo, w swoim skrypcie ustawisz także ini_set('max_execution_time', 0);
, o czym wspomnieli inni. Kiedy uruchamiam skrypt PHP w ten sposób, jestem prawie pewien, że możesz użyć funkcji płukania bufora, aby okresowo odtwarzać postęp skryptu do terminalu, jeśli chcesz. Największym problemem, jaki myślę przy użyciu tej metody, jest to, że nie ma możliwości zatrzymania skryptu po jego uruchomieniu, poza zatrzymaniem całego procesu lub usługi PHP.
- 1. Wykonywanie skryptu PHP z innego skryptu PHP
- 2. Zatrzymaj wykonywanie skryptu Ruby
- 3. Wykonywanie skryptu R programowo
- 4. Wykonywanie skryptu Bash ze skryptu PHP
- 5. Wykonywanie skryptu powłoki z bieżącego katalogu bez "./filename"
- 6. Wykonywanie skryptu Bash z Golang
- 7. Wykonywanie skryptu ruby z cron
- 8. Wykonaj segue bez animacji?
- 9. Zatrzymaj wykonywanie skryptu wywoływanego przy użyciu execfile
- 10. Wykonywanie skryptu powłoki z parametrami z java
- 11. Chrome webtools debugger wznawia wykonywanie skryptu samodzielnie.
- 12. Wykonywanie pliku EXE przy użyciu skryptu PowerShell
- 13. Wykonaj kolorowane polecenie ze skryptu php.
- 14. Wykonywanie wielu poleceń ze skryptu cmd Windows
- 15. Wykonywanie skryptu PowerShell w programie Fake
- 16. Wtyczka Maven exec - Wykonywanie skryptu python
- 17. Wykonywanie skryptu PHP za pomocą zadania CRON
- 18. Wykonywanie pliku skryptu w bazie danych h2
- 19. Wykonywanie skryptu sql w innym schemacie
- 20. Wykonywanie skryptu SQL przechowywanego jako zasób
- 21. Czy zatrzymanie/zatrzymanie przeglądarki zatrzymuje wykonywanie skryptu?
- 22. Wykonywanie skryptu rurociąg Gstreamer kodem php
- 23. Wykonywanie skryptu powłoki za pomocą ant
- 24. Wykonywanie połączeń bez ACTION_CALL aktywności
- 25. Wykonywanie UIView Przewijanie bez UIScrollView
- 26. Wykonywanie zadania Maven ze skryptu powłoki i uzyskiwanie kodów błędów
- 27. Wykonywanie pojedynczego polecenia w skrypcie powłoki bez sudo
- 28. OpenSSL: wykonaj en/deszyfrowanie bez SSL_read()/SSL_write()
- 29. Wykonaj stronę internetową js ze skryptu zawartości rozszerzenia chrome
- 30. Wykonaj akcję w HttpModule
wywołanie go z wiersza poleceń, bez ograniczenia czasowego w ten sposób –
'set_time_limit (0)' na początku skryptu wyłącza limit czasu. Ale możesz mieć inny powód przedwczesnego postoju. Może to być problem z DB lub problem z pamięcią (jeśli tworzysz dużo obiektów). Sprawdź dziennik błędów PHP. – MatRt
Gdzie się zatrzymuje (jak długo i ile wierszy zostanie wstawionych)? To samo za każdym razem czy zmienia się? Coś w logach błędów PHP? –