s4luorth e40a6ff096 Agent: ganzen Warteschlangen-Batch eines Typs in einem Zug drucken
Statt Job für Job (senden, auf Idle warten, nächster) holt der Agent nun
ALLE eingereihten Jobs des eingelegten Formats und sendet alle mit
gleichem Typ + Platzierung als EINE zusammenhängende write_svg-Sendung
(clear beim ersten, start beim letzten Dokument). Der Plotter druckt so
ohne Zwischenstopps durch.

Reihenfolge bleibt exakt erhalten: stabile Sortierung
-priority,date_created,id (= Erstell-/Auftragsnummern-Reihenfolge), die
Batch-Bildung und Datei-Verkettung ändern die relative Reihenfolge nicht;
seiten_reihenfolge wirkt nur je Brief. So passen Schriftstücke, Kuverts
und Sammel-PDF weiterhin zueinander. Abschluss markiert alle Batch-Jobs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-25 08:43:42 +02:00
2026-08-24 12:13:58 +02:00

Skrift Produktions-Agent

Schlanker lokaler Agent (Windows) neben dem Plotter. Steuerung läuft über Directus – der Agent macht nur: Heartbeat → Job holen → drucken → melden.

Einrichtung

  1. In Directus einen Nutzer der Rolle Service anlegen und einen statischen Token erzeugen.
  2. Die Maschine in Directus unter Einstellungen → Maschinen anlegen (base_url, ggf. mid/Login). Die numerische ID der Maschine ist die machine_id für die Agent-Config.
  3. config.example.json → config.json kopieren und ausfüllen (directus_url, directus_token, machine_id).
  4. Abhängigkeiten installieren und starten:
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python agent.py

Ablauf

  • Der Agent meldet zyklisch machines.status + last_seen (Heartbeat).
  • Er zieht den nächsten jobs-Eintrag seiner Maschine mit status=queued (sortiert nach priority, dann Alter).
  • Er lädt die SVGs des Auftrags passend zum Job-Typ (Schriftstück/Umschlag) über den Directus-Datei-Endpoint (/skrift-orders/files/...) und schickt sie mit den Template-Werten (Maße/Position/Rotation) an den Plotter.
  • Status zurück: printing → printed bzw. failed (+ Fehlermeldung).
  • Bei Maschinenfehler (z. B. Papierende) ruft er recover_write auf.

Jobs entstehen

Über den Admin-Trigger POST /skrift-orders/enqueue { order, machine } (bzw. später ein Button in der Webapp). Pro Auftrag entsteht ein Brief-Job und – falls Kuvert beschriftet – ein Umschlag-Job, jeweils mit aufgelöstem Template.

Signaturen / AutoRecover

Der Signatur-Service bleibt vorerst unberührt. Das win32-AutoRecover (klickt das Java-Fenster) kann weiter separat laufen; der Agent nutzt zusätzlich den API-recover_write der Maschine.

Description
No description provided
Readme 81 KiB
Languages
Python 94.3%
Batchfile 5.7%