Python-Anleitung

Verifagent-Heartbeat zu einem Python-Skript hinzufügen

Rufen Sie Verifagent am Ende des Skripts auf, nach der Arbeit, die erfolgreich sein muss. Stürzt der Prozess früher ab, ist das fehlende Heartbeat der Alarm.

Bevor Sie beginnen

Erstellen Sie einen Monitor mit der tatsächlichen Frequenz Ihres Workflows und kopieren Sie dann die URL aus dem Dashboard. Der Token ist geheim — veröffentlichen Sie ihn nicht.

Zu verwendendes Modul : requests / urllib. Platzieren Sie es nach der letzten sinnvollen Aktion auf dem Erfolgspfad.

Einrichtung

1

Monitor-URL kopieren

Erstellen Sie einen Monitor für den Zeitplan dieses Skripts. Bewahren Sie die URL in einer Umgebungsvariable auf, nicht in der Versionskontrolle.

https://verifagent.com/api/ping/your-ping-token
2

Version mit requests

Installieren Sie requests bei Bedarf (pip install requests). Werfen Sie bei Fehler, damit ein schlechter Ping den Prozess nach erfolgreicher Arbeit scheitern lässt — rufen Sie ping erst nach dem Arbeitsblock auf.

import os import requests PING_URL = os.environ["VERIFAGENT_URL"] # vollständige Monitor-URL def main() -> None: # 1) Echte Arbeit zuerst do_work() # 2) Heartbeat nur nach Erfolg response = requests.get(PING_URL, timeout=15) response.raise_for_status() print(response.json()) # {"ok": true} def do_work() -> None: # Durch Ihren Job ersetzen ... if __name__ == "__main__": try: main() except Exception: # Kein Ping bei Fehler — Verifagent bemerkt die Stille raise
3

Version mit urllib (ohne Abhängigkeit)

Gleiche Reihenfolge: Arbeit zuerst, dann GET. urllib ist in der Standardbibliothek.

import json import os import urllib.request PING_URL = os.environ["VERIFAGENT_URL"] def ping() -> None: with urllib.request.urlopen(PING_URL, timeout=15) as resp: body = json.load(resp) if resp.status != 200 or body.get("ok") is not True: raise RuntimeError(f"Unerwartete Ping-Antwort: {body!r}") def main() -> None: do_work() ping() def do_work() -> None: ... if __name__ == "__main__": main()
4

Planen und prüfen

Exportieren Sie VERIFAGENT_URL, führen Sie das Skript einmal aus, erwarten Sie {"ok": true}. Binden Sie es an Cron oder systemd mit derselben Umgebung.

{"ok":true}
Niemals am Anfang von main() pingen. Passen Sie die erwartete Periode an die Laufhäufigkeit an; Kulanz sollte maximale Laufzeit plus Scheduler-Jitter abdecken.

Verfügbare Routen

Die Basis-URL reicht für einen Heartbeat. Varianten bereichern den Verlauf, wenn Ihre Plattform mehrere Zweige hat.

GET https://YOUR_PING_URL
POST https://YOUR_PING_URL/success
POST https://YOUR_PING_URL/fail?msg=Error

Prüfen

Erfolgreicher Lauf setzt den Monitor auf Up. Erzwingen Sie eine Exception vor ping() und prüfen Sie, dass Verifagent für diesen Lauf nichts empfängt.

Erwartete Antwort: 200 {"ok":true}. Der Monitor wechselt von Pending zu Up.