import { startScheduler, stopScheduler } from '$lib/server/scheduler'; import '$lib/server/queue/QueueProcessor'; // Trigger QueueProcessor auto-start import type { ServerInit } from '@sveltejs/kit'; /** * Initialize server-wide functionality * Runs once when the server starts * * Environment variables: * - AUTH_SCHEDULER_ENABLED: Set to 'true' to enable periodic auth renewal * - AUTH_SCHEDULER_INTERVAL_MINUTES: Minutes between each renewal (default: 720) */ export const init: ServerInit = async () => { console.log('[Server Init] Starting SvelteKit server...'); console.log('[Server Init] QueueProcessor auto-started via import'); // The scheduler will renew the Instagram session by loading the existing auth.json // and refreshing it with Instagram (requires initial setup via gen-auth.js) await startScheduler(); }; /** * Listen for graceful shutdown * Clean up resources when the server is shutting down */ process.on('sveltekit:shutdown', async (reason) => { console.log(`[Server Shutdown] Shutdown triggered by: ${reason}`); // Stop the scheduler gracefully await stopScheduler(); console.log('[Server Shutdown] Cleanup complete'); });