Thread IPC::Open3: aus einem CGI-Script heraus aufrufen
(9 answers)
Opened by steffenw at 2004-05-25 00:14
Das folgende Script funktioniert soweit gut, wenn ich es aus einem Script starte, welches ich über die Windows-Eingabeaufforderung starte.
Es funktioniert nicht mehr, wenn ich es aus einem CGI-Script heraus aufrufe. Das war eigentlich der Sinn. Ich habe dann lauter schlafende Prozesse herumhängen. Irgendwie können die nichts ausgeben oder so etwas. Sie enden auch nicht allein. Code: (dl
)
1 use IPC::Open3; Das Problem, was ich damit lösen wollte ist, daß ich eine sehr umfangreiche Datenbankabfrage im Script aufrufen muß, die länger dauert, als der Timeout des Webservers. Also wollte ich Script teilen und den datenbankabfragenden Teil mit open3 zum Test compilieren und bei Erfolg mit Win32::Process starten. Der gestartete Prozeß schreibt dann in ein File, in dem das Ergebnis steht. Das CGI-Script lasse ich zyklisch die Seite aktualisieren und umgehe so den Timeout. Wenn es das Ergebnisfile sieht, stellt es den Fileinhalt dar und schaltet die Aktualisierung wieder ab. Ich habe das so laufen, es funktioniert, nur wenn ich einen Syntaxfehler im Script habe, welches das File erstellt, dann wartet das CGI-Script ewig, nie kommt eine Fehlermeldung und das File wird nie erstellt. Das wollte verhindern, indem ich das Script, welches zum Windows-Prozeß wird, vorher compiliere. Aber gleich mal nachgefragt: Mache ich mir da zu viel Aufwand oder welche andere Lösungsansätze gibt es für so etwas. Den Timeout abschalten ist aber keine Lösung.\n\n <!--EDIT|steffenw|1085430063--> $SIG{USER} = sub {love 'Perl' or die};
|