Ankündigung

Einklappen
Keine Ankündigung bisher.

[Apache & PHP], max_execution_time redirect

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Apache & PHP], max_execution_time redirect

    Hallo,

    Ich habe einige PHP-scripts die mitunter mehrere Minuten lang laufen - allerdings nur aus einem lokalen Kontext heraus, die öffentlichen scripts sind per max_execution_time und max_input_time auf 10 Sekunden beschränkt.

    Weiss jemand wie man den Client nach einem potentiellen timeout (geschieht derzeit nicht) auf eine speziell dafür hergerichtete Site umleitet? Ich dachte da an "ErrorDocument" aus apache aber nach dem timeout wird ja derzeit GARNICHTS angezeigt, gibt es da evtl. ein apache-mod oder einen PHP-Kniff wie man das bewerkstelligen könnte?

  • #2
    Soweit ich weiß, schließt der Apache in dem Fall einfach die Verbindung zum Client (Weiße Seite deutet darauf hin, sonst wäre ein Gateway Timeout angebrachter). Also kannst du nicht nach dem Abbrechen etwas zum Client senden. Darüber hinaus nehme ich aufgrund deiner Config an, dass du entweder das PHP-Apache-Modul, welches du eh in die Tonne hauen kannst für längere Tasks, weil du damit einen Apache Worker verbrätst, oder CGI nutzt.

    Unter FastCGI o.ä. könnte man dagegen einen Proxy-Timeout setzen und wenn dieser erreicht ist, wird ein spezieller HTTP-Fehler getriggert. Dem könnte man dann eine eigene Fehlerseite geben.

    Letztendlich gibt es noch die Möglichkeit, in PHP regelmäßig eine Funktion aufzurufen. Dort könntest du prüfen, ob $sekunden schon vergangen sind, und wenn ja, abbrechen: [MAN]register_tick_function[/MAN]

    Kommentar


    • #3
      ich glaub dann bau ich doch lieber mod_watchcat so um dass auch der Socket des Workers bekannt ist und nach dem Timeout entsprechend mit Daten befüttert wird.

      Kommentar

      Lädt...
      X