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