fix: pruneEvents lief nie von selbst -- und eine Liste, was noch ginge
DIE FUNKTION GIBT ES SEIT DEM ERSTEN TAG und sie raeumt Ereignisse aelter als 180 Tage weg. Aufgerufen wurde sie aber nur von /maintenance/prune-sessions -- einem Weg, den nicht einmal die Oberflaeche anbietet. Die dokumentierte Aufbewahrung griff damit NIE, und die Tabelle wuchs fuer immer. Zum Vergleich: pruneSessions haengt seit jeher an einem stuendlichen Takt. Das eine war verdrahtet, das andere nicht, und der Unterschied fiel niemandem auf, weil beide in derselben Zeile des Wartungswegs stehen. Gemessen: nach EINEM Tag mit Umzug und Serienlauf standen 5355 Zeilen in events. Laeuft jetzt taeglich, mit zwei Minuten Verzoegerung nach dem Start -- nicht stuendlich wie die Sitzungen, denn ein DELETE ueber ein halbes Jahr hat es nicht eilig. Dazu docs/ideen.md: was beim Bauen und Messen wirklich aufgefallen ist, nach Dringlichkeit sortiert. Mit einem eigenen Abschnitt fuer das, was gemessen wieder heruntergefallen ist -- Doppelte (0,0 MB verschwendet), Aufraeumen nach Alter (alle Stufen auf 0), eine Grenze fuer Bildmasse (12000x12000 kostet 374 ms und 47 MB, libvips streamt). Damit sie nicht beim naechsten Mal wieder aufschlagen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -28,7 +28,7 @@ import { Hono } from 'hono'
|
||||
import { logger } from 'hono/logger'
|
||||
import { config } from './config.js'
|
||||
import { ensureAdmin } from './auth.js'
|
||||
import { pruneSessions, schreibeAbrufe, zaehleAbruf } from './db.js'
|
||||
import { pruneEvents, pruneSessions, schreibeAbrufe, zaehleAbruf } from './db.js'
|
||||
import { pruefePlatte, pruefeSicherung } from './meldung.js'
|
||||
import { absolutePath, checkPath, lohntWebp, mimeFor, thumbPath, webpPfad } from './storage.js'
|
||||
import { uploadRoutes } from './routes/upload.js'
|
||||
@@ -391,6 +391,18 @@ ensureAdmin()
|
||||
pruneSessions()
|
||||
setInterval(pruneSessions, 3600_000).unref()
|
||||
|
||||
// UND DIE EREIGNISSE, taeglich. Das stand bisher NUR an einem Wartungsweg
|
||||
// (/maintenance/prune-sessions), den nicht einmal die Oberflaeche anbietet --
|
||||
// die dokumentierten 180 Tage Aufbewahrung griffen damit nie, und die Tabelle
|
||||
// wuchs fuer immer. Nach einem einzigen Tag mit Umzug und Serienlauf standen
|
||||
// dort 5355 Zeilen.
|
||||
//
|
||||
// Nicht stuendlich wie die Sitzungen: ein DELETE ueber eine Zeitspanne von
|
||||
// einem halben Jahr hat es nicht eilig, und 24 Stunden Verzoegerung beim
|
||||
// Wegraeumen fallen niemandem auf.
|
||||
setTimeout(() => pruneEvents(), 120_000).unref()
|
||||
setInterval(() => pruneEvents(), 86_400_000).unref()
|
||||
|
||||
// Der Wachhund fuer die Sicherung. Beim Start mit Verzoegerung (der Dienst
|
||||
// soll erst stehen) und danach stuendlich.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user