diff --git a/backend/src/services/scheduler.ts b/backend/src/services/scheduler.ts index 74bc580..381e564 100644 --- a/backend/src/services/scheduler.ts +++ b/backend/src/services/scheduler.ts @@ -1,5 +1,6 @@ import cron from "node-cron"; import { scrapeToday, scrapeCurrentMonth, scrapeUpcomingMonths, scrapeFullYear } from "./scraper"; +import { getParkDayCount } from "../db/queries"; let initialized = false; @@ -36,4 +37,18 @@ export function startScheduler(): void { console.log(" tier-2: current month — every 6h"); console.log(" tier-3: upcoming — 3 AM + 3 PM"); console.log(" tier-4: full year — 3 AM daily"); + + const existingRows = getParkDayCount(); + if (existingRows < 50) { + console.log(`[scheduler] DB has ${existingRows} rows — running startup scrape`); + scrapeToday() + .then((r) => { + console.log(`[scheduler] startup today: ${r.fetched} fetched, ${r.updated} updated, ${r.errors} errors`); + return scrapeFullYear(); + }) + .then((r) => console.log(`[scheduler] startup full-year: ${r.fetched} fetched, ${r.skipped} skipped, ${r.errors} errors`)) + .catch((err) => console.error("[scheduler] startup scrape error:", err)); + } else { + console.log(`[scheduler] DB has ${existingRows} rows — skipping startup scrape, relying on cron`); + } }