Skocz do zawartości

Tekst "Serwer jest przeciążony" jeśli czas generowania wynosi ponad 10s.


koras

Rekomendowane odpowiedzi

Możesz na początku skryptu uruchomić licznik i w kodzie sprawdzać stan licznika jeśli będzie większy niż określona ilość sekund możesz wysłać odpowiedni komunikat np. z die(); lub w innej formie zakończyć wykonywanie skryptu i poinformować sera o chwilowym przeciążeniu serwera...

Prosta implementacja:

<?
//Na górze strony
$start=microtime(); 

//Na dole 
$end=microtime()-$start; 
echo 'Strona wygenerowana w : '.$end.' sekund(y) !'; 
?> 

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nie sprawdzalem tego :) ale na logike owinno

500 jest to wewnętrzny błąd serwera wiec nie o to chodzi! Za długi czas wykonywania wywala błąd krytyczny Fatal error: Maximum execution time of 10

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz tez wykorzystać obsługę błędów.

Przykład na "szybko" zaczerpnięty z https://pl.php.net/manual/fr/function.set-error-handler.php

<?
ini_set('max_execution_time', 10);

function fatal_error_handler($buffer) {
 if (ereg("(error</b>:)(.+)(<br)", $buffer, $regs) ) {
  $err = preg_replace("/<.*?>/","",$regs[2]);
  error_log($err);
  return "<strong>Przekroczono czas wykonywania [10 sekund] skryptu</strong>";
 }
 return $buffer;
}

function handle_error ($errno, $errstr, $errfile, $errline)
{
  error_log("$errstr in $errfile on line $errline");
  if($errno == FATAL || $errno == ERROR){
   ob_end_flush();
   echo "Przekroczono czas wykonywania skryptu";
   exit(0);
  }
}
ob_start("fatal_error_handler");
set_error_handler("handle_error");

// Tutaj zawartosc strony
echo'<h3>Zawartosc strony top </h3>';

for($a=0;$a<100000;$a++)
{
for($aa=0;$aa<100;$aa++) time();
}

echo'<h3>Zawartosc strony dol</h3>';
ob_end_flush();
?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności