Dieses illustrative Beispiel ist eine private Lesewarteschlange. Eine kleine Weboberfläche speichert Links und Notizen. Ein täglicher Job prüft eine kurze Liste erlaubter Feeds, und eine wöchentliche Aufgabe exportiert eine Lesezusammenfassung. Es ist eine Planungsübung, keine Behauptung, dass ein Kunde dieses Setup verwendet oder dass ein VPS diese Jobs für Sie ausführt.
Den Dienst vom Job trennen
Der Webprozess ist ein Dienst: Er sollte verfügbar sein, wenn Sie das Tool öffnen, unter den von Ihnen gewählten Zugriffskontrollen. Feed-Aktualisierung ist ein Job: Er startet, verarbeitet begrenzte Arbeit, zeichnet sein Ergebnis auf und beendet sich. Eine Endlosschleife mit langem Sleep kann verschleiern, ob die letzte Aktualisierung erfolgreich war und warum ein weiterer Lauf begonnen hat.
Halten Sie den ersten Umfang klein. Rufen Sie nur Quellen ab, deren Nutzung Ihnen erlaubt ist, respektieren Sie deren Rate Limits und bewahren Sie Ihre eigenen Notizen unabhängig von importierten Feed-Inhalten auf. Ein privates Tool benötigt möglicherweise überhaupt keinen öffentlichen Web-Listener, wenn Sie über eine vereinbarte private Verbindung darauf zugreifen. Wenn Sie einen Web-Endpunkt veröffentlichen, implementieren Sie Authentifizierung und prüfen Sie den DNS-, Netzwerk- und HTTPS-Pfad.
Gleichzeitige Arbeit budgetieren
Ein ruhiges Dashboard zeigt nicht die Spitzen-Speichernutzung des Jobs. Zählen Sie, was sich überlappen kann: das Betriebssystem, den Webprozess, den Datenspeicher, das Feed-Parsing und einen Export oder ein Deployment. Jedes Dokument auf einmal in den Speicher zu laden, erzeugt eine andere Anforderung als die Verarbeitung eines begrenzten Batches nach dem anderen.
Angenommen, ein Planungsarbeitsblatt erlaubt 250 MiB für Systemarbeit, 200 MiB für das Webtool und den Datenspeicher, 400 MiB für eine begrenzte Aktualisierung und 400 MiB für einen überlappenden Export oder ein Deployment. Die 1,250 MiB Gesamtmenge sind ein erfundenes Budget zur Erklärung der Entscheidung, kein getesteter Footprint. Messen Sie die realen Aufgaben; ihre Überlappung und temporäre Dateien zählen ebenso wie ihr Leerlaufzustand.
Die Beispielkonfiguration beginnt mit Seed und fügt 1 GB Speicher hinzu. Sie gibt daher 1 vCPU, 2 GB RAM und 25 GB SSD zu einem monatlichen Zwischensumme von $8.50 USD an. Vergleichen Sie den tatsächlich nutzbaren Speicher mit dem Arbeitsblatt und reduzieren Sie die Batch-Größe des Jobs, bevor Sie annehmen, dass mehr CPU benötigt wird. Der Leitfaden zu Ressourcenwarnungen erklärt die Messwerte.
| Dienstzeitraum | Vor dem Speichern | Gespeichert | Einmalig bezahlen |
|---|---|---|---|
| 1 Monat | $8.50 | $0.00 (0%) | $8.50 USD |
| 3 Monate | $25.50 | $0.00 (0%) | $25.50 USD |
| 6 Monate | $51.00 | $14.28 (28%) | $36.72 USD |
| 12 Monate | $102.00 | $51.00 (50%) | $51.00 USD |
Diese Summen enthalten die gewählte Speicheroption und verwenden dieselben wiederkehrenden Rabatte wie beim Checkout. In diesem Beispiel ist keine Katalog-Backup-Option ausgewählt. Halten Sie Backup-Speicher und andere externe Kosten in einem separaten Budget; ein Servicezeitraum ist eine Ausgabeentscheidung, kein Versprechen, dass das Tool keine Wartung benötigt.
Den Zeitplan und die Regel für verpasste Läufe festlegen
Schreiben Sie die beabsichtigte Zeitzone neben den Zeitplan. Entscheiden Sie, ob ein verpasster Lauf nachgeholt werden soll, wenn der Server zurückkehrt, und ob ein verspätetes Ergebnis noch Wert hat. Für diese Lesewarteschlange kann eine einzelne aktuelle Aktualisierung nützlicher sein als das Abspielen jeder verpassten täglichen Aktualisierung.
Unter systemd aktiviert ein Timer einen Dienst. Wenn dieser Zieldienst noch aktiv ist, lässt der Timer ihn laufen, statt eine weitere Instanz zu starten. Ein Kalender-Timer mit Persistent=true kann ein Nachholen auslösen, wenn er nach einem verpassten Ereignis reaktiviert wird; er erzeugt keine separate Ausführung für jedes verpasste Intervall. Siehe die Regeln zu Timer-Verhalten und Persistenz. Der Leitfaden für geplante Jobs macht aus diesen Entscheidungen ein begrenztes Beispiel.
Überlappung kontrollieren und Wiederholungen sicher machen
Geben Sie der geplanten Aktualisierung und jeder manuellen Aktualisierung denselben Ausführungspfad. Wenn ein anderer Einstiegspunkt das Skript direkt ausführen kann, kann eine gemeinsame Sperre diese Versuche koordinieren. Ein Tool wie flock unterstützt exklusive Sperren und eine nicht blockierende Fehlerrichtlinie; alle relevanten Schreiber müssen zusammenarbeiten, und das Dateisystemverhalten spielt eine Rolle. Siehe das Sperrhandbuch und Dateisystembeschränkungen.
Wählen Sie ein explizites Ergebnis für eine belegte Sperre, z. B. die Aufzeichnung, dass diese Aktualisierung übersprungen wurde, weil die vorherige noch lief. Lassen Sie niemals zu, dass ein Bediener diesen Skip für einen erfolgreichen Abruf hält. Identifizieren Sie importierte Elemente separat durch eine stabile Quellkennung, damit ein Wiederholungsversuch bereits gespeicherte Arbeit erkennen kann. Eine Sperre adressiert gleichzeitige Arbeit; duplikatsichere Anwendungslogik adressiert später wiederholte Arbeit.
Begrenzen Sie externe Anfragen und Wiederholungsversuche. Ein nicht verfügbarer Feed sollte einen nützlichen Fehlereintrag hinterlassen, statt den Job für immer aufzuhalten. Wenn ein Export eine Datei erzeugt, bereiten Sie ein neues Ergebnis separat vor und veröffentlichen Sie es erst nach der Validierung, damit das Dashboard bei einem fehlgeschlagenen Lauf weiterhin den vorherigen vollständigen Export verwenden kann.
Ein nützliches Ergebnis aufzeichnen
Eine geplante Zeit in einer Liste ist kein Beweis dafür, dass eine Aktualisierung abgeschlossen wurde. Erfassen Sie Start- und Endzeiten, das Exit-Ergebnis, wie viele Elemente berücksichtigt wurden und den letzten erfolgreichen Daten-Zeitstempel. Für ein persönliches Tool kann eine kleine Statusansicht diesen Zeitstempel anzeigen, ohne Tokens oder rohe private Notizen preiszugeben.
Testen Sie einen normalen Lauf, eine nicht verfügbare Quelle, einen zweiten Aufruf während der Beschäftigung und eine Wiederholung derselben Eingabe. Überprüfen Sie sowohl das Prozessergebnis als auch das gespeicherte Ergebnis. Wenn der Webdienst stoppt, während Jobs weiterlaufen, verwenden Sie die Checkliste für den ersten Hinweis um ein Anwendungsproblem von einem Planungsverhalten zu unterscheiden.
Datenwiederherstellung und Bereinigung getrennt halten
Die unersetzlichen Daten hier sind die gespeicherte Warteschlange, der Lesestatus und persönliche Notizen. Konfiguration, Zeitplandefinitionen und die Release-Kennung werden benötigt, um das Tool wiederherzustellen. Protokolle helfen bei der Untersuchung; temporäre Downloads und ersetzbare Exporte können unterschiedliche Aufbewahrungsregeln haben. Klassifizieren Sie diese Pfade, bevor Sie die Bereinigung automatisieren.
Legen Sie eine begrenzte Aufbewahrungsrichtlinie für Protokolle und abgeschlossene Exporte fest und beobachten Sie das Wachstum, bevor Sie die Löschung aktivieren. Sichern Sie persistente Daten mit einer Methode, die für ihre Speicher-Engine geeignet ist. Bei restic macht die Auswahl eines Snapshots und eines expliziten Testziels die Wiederherstellungsabsicht sichtbar; die Standardwiederherstellung kann vorhandene Dateien überschreiben, verwenden Sie daher ein separates leeres Ziel. Siehe das Wiederherstellungsziel und das Überschreibverhalten.
Rufen Sie in der Testkopie eine bekannte Notiz ab, bestätigen Sie ihren Lesestatus und generieren Sie einen Export. Bewahren Sie das Verfahren und das Ergebnis auf. Die Wiederherstellungsübung erklärt, warum Repository-Integrität und eine nutzbare Anwendung getrennte Prüfungen sind.
Nur konfigurieren, was Sie erklären können
Öffnen Sie den Seed-Konfigurator, überprüfen Sie bestehende Auswahlmöglichkeiten und fügen Sie 1 GB RAM hinzu, um diesem Beispiel zu entsprechen. Wählen Sie den Zeitraum bewusst; der Link wendet die Option nicht für Sie an. Wählen Sie Malaysia, Rumänien oder die Schweiz für den Server und bestätigen Sie Backup-Standort und Serviceumfang, bevor Sie sich auf das Setup verlassen.
Die Wahl eines Hostnamens oder der Erhalt von Zahlungsdetails installiert das Tool nicht und plant seine Jobs nicht. Nachdem der Zugang arrangiert ist, folgen Sie dem Leitfaden für den ersten Zugang und bauen Sie eine beobachtbare Aufgabe nach der anderen auf. Fügen Sie Komplexität hinzu, wenn das aktuelle Ergebnis Ihnen sagt, warum sie benötigt wird.
Verwendete Dokumentation
Primäre Referenzen für diese Seite. Überprüfen Sie die Dokumentation für die in Ihrer eigenen Umgebung installierte Version.