SYNTHETISCHE DEMO-DATEN
Import-Pipeline
Der Katalog wird von einem Kommandozeilen-Importer befüllt, der einen XML-Feed im Kyero-Format liest, prüft und per Upsert in PostgreSQL schreibt. Diese Seite zeigt die letzten Läufe. Sie ist schreibgeschützt: Importe lassen sich nicht über das Web auslösen.
Ein geplanter Job auf einem Linux-VPS führt den Importer täglich mit einem simulierten Feed aus, in dem sich einige Preise ändern, damit neue Läufe echte Änderungen zeigen.
Letzter Lauf · #6
Abgeschlossen27.10.2026, 08:39 UTC · 4.0 s
- Neu
- 0
- Geändert
- 0
- Unverändert
- 300
- Fehler
- 0
Letzter erfolgreicher Lauf · #6
Abgeschlossen27.10.2026, 08:39 UTC · 4.0 s
- Neu
- 0
- Geändert
- 0
- Unverändert
- 300
- Fehler
- 0
Letzte Läufe
| Lauf | Gestartet | Dauer | Status | Datensätze | Neu | Geändert | Unverändert | Fehler | Fehlend | Deaktiviert | Hinweise |
|---|---|---|---|---|---|---|---|---|---|---|---|
| #6 | 27.10.2026, 08:39 UTC | 4.0 s | Abgeschlossen | 300 | 0 | 0 | 300 | 0 | 0 | 0 | |
| #5 | 27.10.2026, 08:30 UTC | 2.9 s | Abgeschlossen | 300 | 0 | 0 | 300 | 0 | 0 | 0 | |
| #4 | 27.10.2026, 08:30 UTC | 5.2 s | Abgeschlossen | 300 | 0 | 300 | 0 | 0 | 0 | 0 | |
| #3 | 27.10.2026, 08:15 UTC | 0.3 s | Fehlgeschlagen | – | 0 | 0 | 0 | 0 | 0 | 0 | MALFORMED_XML: XML is not well-formed: 5230:48: unclosed tag: en |
| #2 | 27.10.2026, 08:15 UTC | 2.8 s | Abgeschlossen | 300 | 0 | 0 | 300 | 0 | 0 | 0 | |
| #1 | 27.10.2026, 08:15 UTC | 4.9 s | Abgeschlossen | 300 | 300 | 0 | 0 | 0 | 0 | 0 |
So läuft ein Import ab
- Prüfsumme und Größenlimit werden geprüft, bevor etwas geparst wird.
- Der gesamte Feed wird gestreamt und validiert, bevor geschrieben wird; eine abgeschnittene Datei scheitert hier und die bestehenden Daten bleiben unberührt.
- Inserate werden per (Quelle, ID) in einer Transaktion geschrieben. Ein Inhalts-Hash entscheidet über neu / geändert / unverändert, daher ändert ein erneuter Lauf desselben Feeds nichts.
- Kyero-Feeds sind vollständige Snapshots, fehlende Inserate werden aber nur gemeldet, nicht entfernt. Eine weiche Deaktivierung braucht ein ausdrückliches Flag und wird bei einem starken Rückgang der Datensätze verweigert.
- Ein Advisory Lock in der Datenbank verhindert zwei gleichzeitige Läufe für dieselbe Quelle.