1 Commits

Author SHA1 Message Date
s4luorth
a6eb41f996 Batch: FTP-Cron standardmaessig aus (Standardweg = Uebernahme in Produktion)
All checks were successful
Build & Deploy / deploy (push) Successful in 16s
Der taegliche 03:00-FTP-Buendel-Lauf laeuft nur noch, wenn
SKRIFT_BATCH_FTP_CRON=true gesetzt ist. Ohne Flag kein automatischer
FTP-Upload; Uebermittlungen laufen ueber die Uebernahme ins Board.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-28 10:15:01 +02:00

View File

@@ -84,18 +84,21 @@ app.listen(config.port, () => {
refreshRenderFormats(); refreshRenderFormats();
setInterval(refreshRenderFormats, 60 * 60 * 1000); setInterval(refreshRenderFormats, 60 * 60 * 1000);
// Batch-Bündelung: täglich um 03:00 (Europe/Berlin) den Vortag bündeln + FTP. // Batch-FTP-Bündelung nur, wenn ausdrücklich aktiviert (Standardweg ist die
// Sa+So werden gemeinsam am Montag verarbeitet (Sonntag-Lauf wird übersprungen). // Übernahme in die Produktion, nicht FTP). SKRIFT_BATCH_FTP_CRON=true schaltet
// Minuten-Tick; einmal pro Tag im 3-Uhr-Fenster (idempotent über letzterBatchTag). // den täglichen 03:00-Lauf (Europe/Berlin) wieder ein; Sa+So am Montag.
let letzterBatchTag = null; if (String(process.env.SKRIFT_BATCH_FTP_CRON || '').toLowerCase() === 'true') {
setInterval(() => { let letzterBatchTag = null;
try { setInterval(() => {
const { date, hour } = berlinParts(); try {
if (hour !== 3 || letzterBatchTag === date) return; const { date, hour } = berlinParts();
letzterBatchTag = date; // markiert den Lauf für heute – auch bei Fehler kein Doppel-Lauf. if (hour !== 3 || letzterBatchTag === date) return;
runScheduledBatch().catch((e) => console.error('[batch-cron] Fehler:', e.message)); letzterBatchTag = date;
} catch (e) { console.error('[batch-cron] Tick-Fehler:', e.message); } runScheduledBatch().catch((e) => console.error('[batch-cron] Fehler:', e.message));
}, 60 * 1000); } catch (e) { console.error('[batch-cron] Tick-Fehler:', e.message); }
}, 60 * 1000);
console.log('Batch-FTP-Cron: aktiv (03:00 Europe/Berlin)');
}
}); });
// Graceful shutdown // Graceful shutdown