Jump to content
tenrico

Problemy ze sklepem - Maximum execution time i inne

Recommended Posts

Mam dość poważne problemy ze sklepem i walczę z nimi już jakiś czas.

  1. zamówienia nie zawsze są zapisywane (brak zamówienia w panelu)
  2. zdarza się że zamówienia są zapisane kilka razy (dodane o identycznym czasie)
  3. Klienci zgłaszają problemy z czasem oczekiwania i finalnie błąd (przy przejściu do płatności, długi czas oczekiwania z białym ekranem, a finalnie błąd 504)

 

W logach serwera znalazłem wpisy typu:

[Fri Jun 01 17:52:04 2018] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error:  Maximum execution time of 300 seconds exceeded in ...../classes/ObjectModel.php on line 213, referer: ..../module/payu/payment
[Fri Jun 01 17:53:07 2018] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error:  Maximum execution time of 300 seconds exceeded in ..../classes/cache/CacheFs.php on line 70, referer: ..../module/bankwire/payment
[Fri Jun 01 17:53:16 2018] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error:  Maximum execution time of 300 seconds exceeded in ..../classes/ObjectModel.php on line 1754, referer: ..../module/bankwire/payment
[Fri Jun 01 17:53:18 2018] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error:  Maximum execution time of 300 seconds exceeded in ..../classes/shop/Shop.php on line 1071, referer: 

To seria logów jednego użytkownika, który wygląda na to, że próbował różnych metod płatności - bo wcześniej jeszcze był log z PayPal od IP tego usera.

Takich linii w logach nie ma dużo i generalnie sporo zamówień jest realizowanych poprawnie. Ale w ciągu dnia zawsze błędy się pojawiają. Widzę, że błędy te pojawiają się przy płatnościach i raczej nie ma znaczenia jakim sposobem płatności. Zamówienia, które nie pojawiły się w systemie chyba zawsze były płacone PayPalem.

 

Oczywiśćie rozumiem, że logi pokazują, że skrypt został skilowany przez serwer z powodu zbyt długiego czasu pracy. Dlatego wcześniej ten czas zwiększyłem do 300 s., ale wygląda na to, że to nadal mało. Ale przecież 300 sekund to bardzo dużo jak na skrypty.

Chyba najczęściel w logach pojawia się odniesienie do plików:

classes/cache/CacheFs.php on line 70
classes/Configuration.php on line 313

Szczególnie ta pierwsza - czasem z linią nie 70 tylko 69. Oczywiście nie wiele mi to mówi.

 

Jeszcze wcześniej zmieniłem serwer- strona była na hostingu teraz jest na dość mocnym VPS - więc winę serwera raczej wykluczam.

 

Jednych z przypusczeń był problem z wtyczką do numeracji zamówień - wyłączyłem ją. Chodziło to, że zamówienia które miałem kilka razy to samo w systemie - nakładały się z innym zamówieniem (tj. dwa niezależne zamówienia miały ten sam numer nadany przez wtyczkę). Choć potem doszedłem do tego, że raczej problem ten jest następstwem poprzedniego - czyli maximum execution time. Czyli po niedokończeniu zamówienia (skilowanym skrypcie) w bazie nie ma zapisanych kompletu informacji o zamówieniu. I kolejne zamówienie, innego klienta miało problemy z numeracjami miałem zamówienie kilka razy.

 

Jak widać już sporo wydedukowałem, Wygląda na to, ze źródłem wszsytkich problemów jest Maximum execution time, ale co jest przyczyną tego problemu? 300 sekund to mało? Przypuszczam, że jest jakiś błąd skpryptów, ale jak do tego dojść? Wskazywane przez logi pliki nie wiele mi mówi.

Zwiększyłem ten czas i czekam - zobaczymy co będzie, ale jak nadal wystąpią problemy, to już nie mam kompletnie pomysłu co zrobić.

 

Miał ktoś podobne problemy? Jakieś rady? Pomysły?

 

Działam na preście 1.6.1.17

Własny szablon zbudowany na Bootstrap-default

Podstawowe moduły presty + kilka dodatkowych, m.in. PayPal, PayU

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More