| 123456789101112131415161718192021222324252627282930 |
- 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);
- });
|