Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6eb41f996 |
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user