Files
AfiS-Aktensystem/worker
Harlekin 7052238db7 Lebenszeichen des Workers zeitzonenfest pruefen
Der Healthcheck meldete den Worker dauerhaft als krank, obwohl er im
Sekundentakt schrieb: "Lebenszeichen 7214 s alt" - und 7214 Sekunden sind genau
zwei Stunden, der Abstand zwischen CEST und UTC.

`ServiceHeartbeat.at` ist ein timestamp ohne Zeitzone, und Prisma schreibt UTC
hinein. node-postgres liest so einen Wert aber als *lokale* Zeit; im Container
steht TZ=Europe/Berlin, und damit war jedes frisch geschriebene Lebenszeichen
beim Lesen schlagartig zwei Stunden alt.

Das Alter wird jetzt in der Datenbank gerechnet, gegen `now() AT TIME ZONE
'UTC'` - also in derselben Form, in der der Wert gespeichert ist. Die Rechnung
stimmt damit unabhaengig davon, welche Zeitzone im Container oder in der
Datenbank eingestellt ist.

Auffallen konnte das nur im Betrieb: lokal laeuft die Datenbank auf UTC, dort
ist die Abweichung null.
2026-09-04 10:45:38 +02:00
..
2026-09-01 00:01:49 +02:00
2026-09-01 00:01:49 +02:00
2026-09-01 00:01:49 +02:00