import * as cron from "node-cron"; console.log("MovieDice cron service started"); // Refresh landing reel posters — daily at 3:00 AM UTC cron.schedule("0 3 * * *", async () => { console.log(`[${new Date().toISOString()}] Reel refresh: starting`); // TODO: fetch trending movies from TMDB and update landing_reel_posters console.log(`[${new Date().toISOString()}] Reel refresh: complete`); }); // Refresh trailer URLs — daily at 4:00 AM UTC cron.schedule("0 4 * * *", async () => { console.log(`[${new Date().toISOString()}] Trailer refresh: starting`); // TODO: re-validate trailer URLs for movies missing trailers console.log(`[${new Date().toISOString()}] Trailer refresh: complete`); }); // Refresh TMDB metadata — monthly on the 1st at 5:00 AM UTC cron.schedule("0 5 1 * *", async () => { console.log(`[${new Date().toISOString()}] Metadata refresh: starting`); // TODO: refresh metadata for movies where metadata_refreshed_at > 30 days console.log(`[${new Date().toISOString()}] Metadata refresh: complete`); }); // Keep the process alive process.on("SIGTERM", () => { console.log("Received SIGTERM, shutting down cron service"); process.exit(0); });