Spaces:
Build error
Build error
| import { sessionRepository } from '@core/storage/repositories/sessions.js'; | |
| import { voteRepository } from '@core/storage/repositories/votes.js'; | |
| import { logRepository } from '@core/storage/repositories/logs.js'; | |
| import { scrapeQueueRepository } from '@core/storage/repositories/scrapeQueue.js'; | |
| import { config } from '@config/index.js'; | |
| import { sleep } from '@core/utils/helpers.js'; | |
| async function runCleanupWorker() { | |
| console.log('🔄 Starting cleanup worker...'); | |
| await Promise.all([ | |
| sessionRepository.initialize(), | |
| voteRepository.initialize(), | |
| logRepository.initialize(), | |
| scrapeQueueRepository.initialize(), | |
| ]); | |
| let running = true; | |
| process.on('SIGINT', () => { running = false; }); | |
| process.on('SIGTERM', () => { running = false; }); | |
| // Run immediately on start | |
| await runCleanup(); | |
| // Then run every hour | |
| while (running) { | |
| await sleep(60 * 60 * 1000); // 1 hour | |
| if (running) { | |
| await runCleanup(); | |
| } | |
| } | |
| console.log('🛑 Cleanup worker stopped'); | |
| } | |
| async function runCleanup() { | |
| console.log('🧹 Running cleanup tasks...'); | |
| try { | |
| const results = await Promise.allSettled([ | |
| sessionRepository.cleanupExpiredSessions(), | |
| voteRepository.cleanupOldVotes?.() || Promise.resolve(0), | |
| logRepository.cleanupOldLogs(30), | |
| scrapeQueueRepository.cleanupOldItems(7), | |
| ]); | |
| const [sessions, votes, logs, queueItems] = results.map(r => | |
| r.status === 'fulfilled' ? r.value : 0 | |
| ); | |
| console.log(`✅ Cleanup completed: ${sessions} sessions, ${votes} votes, ${logs} logs, ${queueItems} queue items removed`); | |
| await logRepository.log({ | |
| level: 'info', | |
| message: 'Cleanup completed', | |
| context: { sessions, votes, logs, queueItems }, | |
| }); | |
| } catch (error) { | |
| console.error('Cleanup worker error:', error); | |
| await logRepository.log({ | |
| level: 'error', | |
| message: 'Cleanup worker failed', | |
| error: { name: 'Error', message: String(error), stack: String(error) }, | |
| }); | |
| } | |
| } | |
| runCleanupWorker().catch(console.error); |