Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 11x 11x 11x 11x 11x 11x | import { Injectable, Logger } from '@nestjs/common';
import { Cron, CronExpression } from '@nestjs/schedule';
import { OpenHouseService } from '@app/modules/open-houses/open-house.service';
import { Counter, register } from 'prom-client';
@Injectable()
export class OpenHousePruneScheduler {
private readonly logger = new Logger(OpenHousePruneScheduler.name);
constructor(private readonly service: OpenHouseService) {}
private readonly errorCounter: Counter<string> = (register.getSingleMetric('open_house_prune_errors_total') as Counter) ?? new Counter({
name: 'open_house_prune_errors_total',
help: 'Total number of errors thrown by the open-house prune job',
});
// Run daily at 03:10 UTC
@Cron(CronExpression.EVERY_DAY_AT_3AM)
async handleCron() {
try {
const removed = await this.service.prunePast();
Iif (removed > 0) this.logger.log(`Pruned ${removed} past open house events`);
} catch (err) {
this.errorCounter.inc();
this.logger.error(`Failed to prune open houses: ${(err as Error).message}`);
}
}
} |