feat: Allow configuring category sync interval via environment variable and log next sync time.

This commit is contained in:
sebseb7
2025-11-23 10:05:58 +01:00
parent 729d056618
commit 3f451dde06
3 changed files with 17 additions and 15 deletions

View File

@@ -10,3 +10,4 @@ JTL_SPRACHE_ID=1
JTL_PLATTFORM_ID=1 JTL_PLATTFORM_ID=1
SERVER_PORT=3991 SERVER_PORT=3991
SERVER_HOST=127.0.0.1 SERVER_HOST=127.0.0.1
SYNC_INTERVAL_MS=600000

View File

@@ -62,6 +62,11 @@ class CategorySyncer extends EventEmitter {
await this._syncFromDb(); await this._syncFromDb();
const duration = Date.now() - startTime; const duration = Date.now() - startTime;
console.log(`✅ Sync completed successfully in ${duration}ms.`); console.log(`✅ Sync completed successfully in ${duration}ms.`);
// Log next sync time
const syncInterval = parseInt(process.env.SYNC_INTERVAL_MS) || 60000;
const minutes = Math.round(syncInterval / 60000);
console.log(`⏰ Next sync in ${minutes} minute${minutes !== 1 ? 's' : ''}`);
} catch (err) { } catch (err) {
console.error('❌ Sync failed:', err); console.error('❌ Sync failed:', err);
} finally { } finally {

View File

@@ -30,21 +30,17 @@ categorySyncer.on('synced', async ({ tree, unprunedTree, changed }) => {
// Trigger immediate sync // Trigger immediate sync
categorySyncer.triggerSync(); categorySyncer.triggerSync();
// Check if running interactively // Schedule periodic sync
if (process.stdout.isTTY) { const syncInterval = parseInt(process.env.SYNC_INTERVAL_MS) || 60000;
console.log('🤖 Interactive mode: Syncing every minute. Press Ctrl-C to exit.'); setInterval(() => {
// Schedule periodic sync
setInterval(() => {
categorySyncer.triggerSync(); categorySyncer.triggerSync();
}, 60000); }, syncInterval);
// Handle graceful shutdown // Handle graceful shutdown
process.on('SIGINT', () => { process.on('SIGINT', () => {
console.log('\n👋 Bye!'); console.log('\n👋 Bye!');
process.exit(0); process.exit(0);
}); });
}
// Start Express server // Start Express server
startServer(); startServer();