Frage

Ich habe eine Anwendung, die alle fünf Sekunden und wenn ein Auftrag (dh Datei) mit einem Eingang Verzeichnis durchsucht in dem Verzeichnis abgelegt wird die Anwendung liest, verarbeitet sie und gibt eine andere Datei (en) in einem Ausgabe-Verzeichnis.

Meine Frage ist, wenn ich einen Web-basierter Frontend zu diesem Antrag stellen wollte, wie würde ich für die Verarbeitung warte bis vollständig?

  • User einreicht Job
  • Job wird in Eingabeverzeichnis platziert
  • ...... Was ich auf der Webseite hier mache?
  • Verarbeitung erfolgt
  • Ausgabedatei erzeugt
  • ...... Wie kann ich wissen, dass der Job beendet ist?

Die beiden Lösungen kam ich mit waren:

  • Umfrage Ausgabeverzeichnis alle x Sekunden von der Webseite
  • Verwendung AJAX eine Webservice oder Webseite abzufragen, ob die Ausgabedatei vorhanden
  • ist zurückmeldet

Gibt es ein besseres Design für den Server? Mit anderen Worten, wie würde in dieser Situation TCP oder Named Pipes helfen? (Kann nicht Remote verwenden aufgrund eines DCOM-Objekt.)

War es hilfreich?

Lösung

Eine Lösung, die wir im Handel in der Vergangenheit getan haben, ist im Grunde die Daemon schreibt in ein Protokoll (typischerweise DB), mit einem Datum / Zeitstempel, über das, was ihr tut, und der Web-Frontend zeigt gerade die neueste X Anzahl der Einträge aus das Protokoll, mit einem kleinen Knebel alle „sah im Verzeichnis, keine Datei gefunden“ -Meldungen, arbeitete ziemlich gut zu verstecken, wir es ein Upgrade später mit AJAX (Timer, der alle 20 Sekunden neu geladen).

Andere Tipps

Ich glaube nicht, dass Named Pipes wird es einfacher machen, das Web-Client zu erhalten automatisch abzufragen, aber es könnte den Server besser in der Lage zu machen, um ein anderen Prozess zu benachrichtigen, dass die Umwandlung abgeschlossen ist - und schließlich eine Warteschlange Nachricht an den Web-Browser.

Sie können versuchen, den Web-Client-Umfrage alle paar Sekunden mit, um zu sehen, ob die Datei abgeschlossen ist, alternativ Sie so etwas wie Juggernaut „Push“ haben könnte, Befehle an die Seite. Juggernaut arbeitet mit Flash eine Buchse auf dem Web-Browser zu öffnen, die ständig JavaScript vom Server-Feeds. Es könnte für das Senden eines Befehls verantwortlich sein, den Browser zu warnen, dass die Datei abgeschlossen ist und dann eine Umleitung erteilen.

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