Frage

Ich habe ein "Gerät" (mangels besserer Beschreibung), das Linux ausgeführt wird.

Derzeit bin ich in die Box, um Jobs zu starten. Dies ist für meine Benutzer nicht freundlich genug, daher stelle ich eine einfache Web -Benutzeroberfläche zusammen, um das Skript zu starten. Ein Job läuft zwischen 10 Sekunden bis zu mehreren Stunden. Die Web -Benutzeroberfläche muss den Status des Jobs widerspiegeln.

Ich habe in der Vergangenheit ähnliche Probleme gelöst, indem ich einen Daemon auf dem Server ausgeführt habe, der ein Spulenverzeichnis (oder eine DB -Tabelle) für neue Stellenanfragen beobachtet, einen Prozess hervorbringt, den Prozess überwacht und Informationen für die Web -Benutzeroberfläche in einer DB -Tabelle bereitstellt oder Statusdatei. Die Web -Benutzeroberfläche lässt dann Jobanfragen in eine Spulen -DIR (DB) fallen und überprüfen gelegentlich die Statusdatei (DB). Dies könnte für diese Aufgabe übertrieben sein.

Für die aktuelle Aufgabe erwähne ich, den Job aus dem CGI zu leichten und gelegentlich eine Statusdatei zu überprüfen, die der Job im Laufe des Fortschreitens oder des Ablaufs schreibt.

Meine Frage: Gibt es einen besseren (einfacheren/schnelleren Schreiben/robuster) Weg, dies zu tun? Gibt es vorhandene Muster oder Tools, die ich wissen sollte?

(Python -Lösungen sind ideal.)

Vielen Dank.

War es hilfreich?

Lösung

Ich mache das in einer Reihe von Projekten. Eine Web-App (meisten Dämonizes selbst die Arbeit machen. Die Web-App gibt dann weiterhin AJAX-Anfragen aus, um den Fortschritt des Daemon-Prozesses zu überprüfen (ich verwende einfache TXT-Dateien für die Kommunikation, Datenbank wäre wahrscheinlich besser). Eine nette Geste ist, dass die Daemon -E -Mail den Endbenutzer nach Abschluss (mit einem Link zum Abrufen von Ergebnissen) eine E -Mail an den Endbenutzer hat. Auf diese Weise kann der Benutzer seinen Webbrowser für diese Jobs schließen, die Stunden dauern.

Andere Tipps

Ich bin mir nicht sicher, ob ich Ihr Problem richtig verstanden habe, aber ich gehe davon aus, dass Sie mehrere "Jobs" haben, die gleichzeitig ausgeführt werden können und möchten, dass sie auf der Webseite angezeigt werden, ob sie vollständig sind oder nicht?

Wenn die Webseite (z. B. Python & mod_wsgi) ein Job gestartet hat, starten Sie ein Python -Skript, in das der Job eingibt. Sagen wir die SQLite -Datenbank und führen den Job aus, sobald der Job abgeschlossen ist, aktualisiert das Skript den Eintrag für den Job so, dass der Job so ist, dass der Job so ist Es ist als vollständig gekennzeichnet

Die Statusseite würde einfach das Zeug aus dem SQLite anzeigen.

Was Sie zusätzlich zur Job -ID in die DB einsetzen und möglicherweise Start/End -Zeiten hängen von dem ab, was Sie auf Ihrer Jobstatus -Webseite anzeigen möchten

In einer Nebenbetreuung - wenn die "Jobs" Zusammenstellungen sind, treffen Sie sich Hudson

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top