Files
gob-alert/apps/api/src/backup/backup.scheduler.ts
alexandrump 82f3464565 first commit
2026-02-09 01:02:53 +01:00

25 lines
785 B
TypeScript

import { Injectable, Logger } from '@nestjs/common';
import { Cron, CronExpression } from '@nestjs/schedule';
import { BackupService } from './backup.service';
@Injectable()
export class BackupScheduler {
private readonly logger = new Logger(BackupScheduler.name);
constructor(private readonly backup: BackupService) {}
@Cron(process.env.BACKUP_CRON || CronExpression.EVERY_DAY_AT_2AM, { name: 'backup_job' })
async handleCron() {
if (String(process.env.BACKUP_ENABLED || 'true').toLowerCase() === 'false') {
return;
}
this.logger.log('Scheduled backup triggered');
try {
await this.backup.runBackup();
this.logger.log('Backup completed');
} catch (err: any) {
this.logger.error('Backup failed', err?.message || err);
}
}
}