Thread Nach Ausgabe von CGI - foo ausführen
(23 answers)
Opened by Gustl at 2020-03-25 12:37
Ein möglicher Ansatz wäre, das Verhalten im Webserver zu umgehen:
Neben dem CGI-Skript gibt es ein weiteres Skript foo, das die länger laufenden Aufgaben erledigen soll. Das CGI-Skript schreibt beispielsweise eine Datei mit den relevanten Informationen in ein bestimmtes Verzeichnis; es sollte jeweils ein eigener Dateiname sein. Was genau alles übergeben werden muss, damit dieses foo seine Arbeit machen kann, musst Du selbst entscheiden, da haben wir keine Informationen drüber. Wenn diese Datei geschrieben wurde, kann das CGI-Skript eine entsprechende Ausgabe generieren und sich beenden. Es hat seinen Job getan. Je nach genauer Anforderung: Das Skript foo läuft entweder als Daemon oder wird minütlich ausgeführt. Es überprüft das Verzeichnis, ob dort Dateien vorliegen. Wenn ja, arbeitet es die Dateien von alt nach neu nacheinander ab. Jede Datei, für die die Aufgaben durchgelaufen sind, wird gelöscht. Wenn das zweite Skript beispielsweise via Cronjob auf einem Linux gestartet würde, ist der kleinste mögliche Intervall 1 Minute. Was hier auf Windows möglich ist, weiß ich nicht. Wenn Du das als Daemon laufen lässt, sind wohl auch kleinere Intervalle möglich. Ich denke, sinnvoll wären dabei folgende Überlegungen: - Wie oft würden Aktionen über das CGI-Skript ausgeführt? - Wie lange dauern die länger laufenden Aufgaben deines foo? - Ist es sinnvoll kürzere Intervalle einzusetzen als diese Laufzeit beträgt? - Wenn foo regelmäßig aufgerufen wird: Dürfen mehrere Instanzen davon parallel laufen? Ggfs. muss das verhindert werden. - Braucht es evtl. zusätzlich ein Queue-System? Andere Wege der Kommunikation zwischen Prozessen sind auch noch in der perlipc beschrieben. meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |