Thread Problem mit neuem Prozess
(13 answers)
Opened by anamollo4music at 2013-03-20 14:04
Eine saubere Lösung wäre folgendes: Man lässt einen Hintergrundprozess laufen, der bei Bedarf die Datenbank befüllt und den man per Interprozesskommunikation von dem kurzlebigen CGI-Prozess aus ansteuert um ihm mitzuteilen, dass er anfangen oder aufhören soll zu loggen.
Interprozesskommunikation funktioniert in der Regel entweder über gemeinsam genutzte Speicherbereiche oder über ähnliche Programmierschnittstellen wie Netzwerkkommunikation, nur dass Client und Server auf demselben Rechner sitzen. Den Hintergrundprozess könnte man entweder unabhängig vom CGI schon mal "präventiv" starten und einfach warten lassen, bis ihm Arbeit zugewiesen wird, oder das CGI-Skript könnte den Hintergrundprozess tatsächlich per fork abspalten, müsste dann aber auch dafür sorgen, dass er vom Webserver entkoppelt wird, indem er alle gemeinsamen I/O-Kanäle schließt und am besten eine neue Prozessgruppe eröffnet. edit: Wenn das Betriebssystem keinen echten fork unterstützt, fällt diese Möglichkeit des automatischen Starts freilich weg. Last edited: 2013-03-20 16:49:44 +0100 (CET) When C++ is your hammer, every problem looks like your thumb.
|