feat(260907-efh): automatische Fingerabdruck-Nachrechnung beim Start
Nach der Formelaenderung (v1 -> v2) traegt jede Bestandszeile einen Hash der alten Formel und wuerde nie wieder auf einen neuen treffen. Die Produktionsdatenbank wird von Hand nicht angefasst, deshalb rechnet ein neuer Dienst beim Start alle veralteten Zeilen automatisch nach — an der Versionsmarke aus tender-fingerprint.ts erkannt, gleiche Bauform wie die LDAP-Bind-Passwort-Nachverschluesselung. - TenderFingerprintBackfillService: OnApplicationBootstrap, seitenweise (500 Zeilen), pro Seite eine Transaktion, Fehler werden geloggt und geschluckt statt geworfen - In tenders.module.ts VOR TenderSchedulerService eingetragen, damit die Nachrechnung vor der Cron-Registrierung laeuft - Vier Tests: leere DB, alter+leerer Hash werden beide erfasst, zweiter Lauf schreibt nichts mehr, Datenbankfehler wirft den Haken nicht Gemessen an der lokalen Datenbank (16.255 Zeilen): Fingerabdruck-Gruppen mit mehr als einer Zeile vorher=0, nachher=26, veraltete Zeilen danach=0, davon Gruppen mit widersprechenden Wert-Groessenordnungen=2. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
This commit is contained in:
@@ -12,6 +12,7 @@ import { RssAdapter } from './adapters/rss.adapter';
|
||||
import { SourceRegistry } from './source-registry';
|
||||
import { seedServiceBundRssFeed, seedTendersModule } from './tenders.seed';
|
||||
import { TenderDedupService } from './tender-dedup.service';
|
||||
import { TenderFingerprintBackfillService } from './tender-fingerprint-backfill.service';
|
||||
import { TenderDigestScheduler } from './tender-digest.scheduler';
|
||||
import { TenderEmailConfigService } from './tender-email-config.service';
|
||||
import { TenderIngestionService } from './tender-ingestion.service';
|
||||
@@ -135,6 +136,12 @@ import { TendersController } from './tenders.controller';
|
||||
TenderNormalizerService,
|
||||
TenderDedupService,
|
||||
TenderIngestionService,
|
||||
// WINDOWS.md #11, Task 3: MUSS vor TenderSchedulerService stehen — Nest
|
||||
// ruft die OnApplicationBootstrap-Haken eines Moduls in der Reihenfolge
|
||||
// der Anbieterliste auf, und die Fingerabdruck-Nachrechnung soll fertig
|
||||
// sein, bevor der Poll-Cron zu laufen beginnt. Beim Umsortieren dieser
|
||||
// Liste bitte diese Reihenfolge erhalten.
|
||||
TenderFingerprintBackfillService,
|
||||
TenderSchedulerService,
|
||||
TenderTriageService,
|
||||
TenderSavedSearchService,
|
||||
|
||||
Reference in New Issue
Block a user