Jestem jedynym administratorem bazy danych. Chcę uruchomić skrypt jeden raz, że w zasadzie zajmuje około 3800 zeskanowanych obrazów (wzrośnie do 10 000 tys) i utworzyć kilka miniaturek dla każdego obrazu przy użyciu exec() w PHP funkcji do wykonania zewnętrznego ImageMagick program do tworzenia tych miniatury.Maksymalny błąd czasu wykonania w skrypcie PHP, czy jest to dobre rozwiązanie, aby go ominąć?
stworzyłem skrypt, uruchomił go i wszystko działa doskonale! Wszystko odbywa się na moim lokalnym serwerze programistycznym. Skrypt zajmuje około 11 minut, aby utworzyć tysiące miniatur. To jednorazowa operacja przeprowadzana co dwa lata, więc konsekwencje są minimalne.
tej pory tak dobrze. Oto, kiedy mam problemy.
Wszystko, co zrobiłem na moim lokalnym serwerze rozwoju zrobiłem na żywo serwera dla celów testowych. Mam wspólne konto hosta z hostgatorem. Uruchomienie mojego 11-minutowego skryptu na współdzielonym hoście powoduje błąd "Maksymalny czas wykonania 30 sekund przekroczony ...". Zrobiłem moje badania, próbowałem wielu rozwiązań znalezionych w tym poście (Increase max execution time for php) tylko po to, aby zdać sobie sprawę, że nic nie mogę zrobić, aby zmienić maksymalny czas wykonania skryptu na współdzielonym hoście.
utknąłem. Moje pytanie brzmi: jakie jest tutaj oczywiste rozwiązanie.
Myślałam o uruchomieniu skryptu za każde 200 obrazów, odśwież stronę automatycznie i uruchom skrypt ponownie przez następne 200 zdjęć i tak dalej, dopóki nie ma więcej zdjęć. W ten sposób jestem pewien, że maksymalny czas wykonania 30 sekund dozwolony dla mojego hosta współdzielonego jest respektowany. Wygląda to jak rozwiązanie tuż nad głową, ale nie jestem pewien, czy to NIE NIE, jeśli mam napotkać większe problemy, zbyt wiele negatywów ..
Czy to oczywiste rozwiązanie? Ktoś ma ten sam problem? Co sugerowaliście?
Dzięki
Dlaczego trzeba tworzyć miniatury co dwa lata? Czy nie powinno się jednorazowo stworzyć oryginalnego obrazu, aby stworzyć miniaturę i pozostawić ją na zawsze (aż przestanie być przestarzała)? –
Czy sprawdziłeś, czy w trybie CLI nie ma czasu wykonania? Zwykle dla skryptów CLI jest '0' (bez ograniczeń) dla max_execution_time - http://php.net/manual/en/info.configuration.php # ini.max-execution-time – codedge
wiele współdzielonych hostów zatrzyma długo działający skrypt bez względu na to, co zrobisz - najpierw sprawdź, czy to –