Remote-Fortschrittsbalken

Die Arbeit, die ich mache, besteht oft darin, einen Stapel von Jobs auf einer Maschine bereitzustellen und dann wegzugehen.

Um die Bearbeitungszeit zu minimieren, bin ich ein großer Fan von Pushover für Benachrichtigungen bei Fertigstellung. Pushover ist fantastisch, weil es ein Webdienst-API-Aufruf ist, der einfach in verschiedene Sprachen und Skripte integriert werden kann .

Was ich suche, ist etwas sehr Ähnliches, das einen über das Web zugänglichen Fortschrittsbalken darstellen würde, der so einfach zu integrieren wäre wie eine normale Befehlszeilen- Fortschrittsbalkenbibliothek. Auf diese Weise kann ich besser abschätzen, wie schnell etwas fertig sein wird, wenn ich nicht an meiner Hauptmaschine bin.

Idee wäre: API Call erstellt eine UID für einen Fortschrittsbalken, mit einer erwarteten Anzahl von Updates. Dann kann der Client die Anzahl der ausgeführten Updates über einen weiteren Aufruf aktualisieren ( zB curloder ). httplibDer Fortschrittsbalken selbst sollte als einfache Webseite zugänglich sein.

Ich hoffe auf einen Drittanbieterdienst, da ich Apache nicht einfach auf den Maschinen ausführen kann - normalerweise sind sie durch eine Firewall geschützt.

Hinweis : Ich würde definitiv einen Dienst bevorzugen, aber ich könnte hypothetisch offen sein für etwas, das ich hosten könnte (AWS Free-Stufe?).

Antworten (1)

Vorausgesetzt, Ihr Batch ist ein Bash-Skript hinter der Firewall, wäre der ideale Weg dazu AWS API Manager.

Zum Beispiel:

  1. Erstellen Sie einen Zähler in Ihrem Shell-Skript, der inkrementiert wird und nach Erreichen eines bestimmten Werts einen S3-Bucket aktualisiert
  2. Das Update in den Bucket-Dateien ruft die Lambda-Funktion auf, die einige globale Variablen aktualisiert
  3. Sie können eine API im API-Manager erstellen, die diese Variable überprüft und den Fortschritt zurückgibt

Natürlich können Sie ganz einfach ein Web-Frontend für Ihr Lambda erstellen.

Eine weitere Option für diese Aufgabe sind WebSockets in API Manager , die eine serverlose bidirektionale Kommunikation ermöglichen und noch einfacher sind, da Sie kein Web-Frontend und wahrscheinlich kein Lambda benötigen. API Manager kann den Fortschritt direkt an Ihren Pushover senden und/ oder Gerät.

Eine weitere mögliche Option ist Step Function, sehen Sie sich dieses Beispiel an , das dasselbe tut, was Sie beschrieben haben.

Mehrere Möglichkeiten der Implementierung dies.