62. pepsi-queue

Inspiziert und repariert die Nachrichten-Warteschlange.

62.1. Rolle

pepsi-queue ist das Diagnose- und Reparaturwerkzeug des Operators für die pepsi.workqueue-Tabelle. Es verbindet sich über den gemeinsamen [pepsi-postgres]-Abschnitt und hat keine eigene Konfiguration. Als root gestartet, läuft es vor dem Verbinden als Dienstkonto pepsi weiter, sodass kein sudo -u pepsi nötig ist. Referenz: pepsi-queue(1).

62.2. Funktionen

  • list — listet die eingereihten Nachrichten nach workqueue_id geordnet auf, wahlweise als --json (workqueue_id, stage, status, mail_from, subject, received_at, state), mit --limit (standardmäßig 100), den Filtern --stage und --status, einem optionalen positionalen WORKQUEUE_ID, das die Ausgabe auf eine Nachricht beschränkt, und --state-only, um statt der Datensatzzusammenfassung den vollständigen, ungekürzten JSON-state jeder passenden Nachricht auszugeben. list ist die Standardaktion, sein positionales Argument und seine Optionen werden daher auch ohne Unterbefehl angenommen (pepsi-queue 5, pepsi-queue --state-only 5).

  • delete WORKQUEUE_ID — entfernt eine Nachricht dauerhaft.

  • set-stage WORKQUEUE_ID STAGE — weist eine Nachricht einer gegebenen Stage neu zu und setzt ihren status auf pending zurück (ihr state bleibt unverändert), damit die neue Stage sie aufnimmt.

  • clear-all — massenhaftes „Losmachen“: setzt jede running/paused-Nachricht zurück auf pending (failed/timeout bleiben unberührt) — die Wiederherstellung nach einem Absturz oder einer ins Stocken geratenen Stage.

  • gc — räumt die Nonce-Tabelle des Herkunftsnachweises auf (pepsi.origin_nonce) und löscht Einträge, deren Ablaufzeit vorüber ist, ebenso den MX-Adress-Cache (pepsi.dns_address), aus dem Datensätze gelöscht werden, deren DNS-TTL abgelaufen ist. Für einen Timer gedacht; das Debian-Paket richtet einen stündlichen ein.

Die verändernden Unterbefehle wirken sofort und sind nicht umkehrbar. set-stage und clear-all wecken zusätzlich den Dispatcher (pepsi.workqueue trägt keinen benachrichtigenden Trigger, und diese Befehle laufen außerhalb der Schleife des Dispatchers, sodass es sonst nichts täte). Führen Sie ``clear-all`` nur aus, während ``pepsi-dispatch`` gestoppt ist: Die running-Hälfte benennt Datensätze, die ein lebender Worker noch halten könnte, und sie zurückzusetzen bedeutet, dass dieselbe Nachricht zweimal beansprucht und bearbeitet wird.

62.3. Verhältnis zum Dispatcher

pepsi-queue verändert dieselben stage/status/state-Spalten, auf denen der Dispatcher arbeitet; clear-all ergänzt das Zurücksetzen verwaister running-Datensätze, das der Dispatcher beim Start selbst vornimmt. Es startet keine Stage-Programme.

62.4. Siehe auch

pepsi-dispatch, Architektur, pepsi-queue(1), pepsi.conf(5).