first commit
This commit is contained in:
24
apps/api/src/backup/backup.scheduler.ts
Normal file
24
apps/api/src/backup/backup.scheduler.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user