This repository has been archived on 2026-06-15. You can view files and clone it, but cannot push or open issues or pull requests.
Files
MediaLore/src/lib/scheduler.ts
Garret Patti 8829188c58 add scanning
2026-04-05 18:55:53 -04:00

40 lines
1.0 KiB
TypeScript

import cron, { type ScheduledTask } from 'node-cron'
import { getScanConfig } from './app-settings'
import { runFullScan } from './scanner'
let scheduledTask: ScheduledTask | null = null
export function startScheduler(): void {
const { schedule, enabled } = getScanConfig()
if (!enabled) {
console.log('[scheduler] Scanning is disabled — scheduler not started')
return
}
if (!cron.validate(schedule)) {
console.error(`[scheduler] Invalid cron expression "${schedule}" — scheduler not started`)
return
}
scheduledTask = cron.schedule(schedule, () => {
console.log('[scheduler] Cron triggered — running full scan')
runFullScan().catch((err) => console.error('[scheduler] Scan error:', err))
})
console.log(`[scheduler] Started with schedule: ${schedule}`)
}
export function stopScheduler(): void {
if (scheduledTask) {
scheduledTask.stop()
scheduledTask = null
console.log('[scheduler] Stopped')
}
}
export function restartScheduler(): void {
stopScheduler()
startScheduler()
}