33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
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');
|
|
});
|