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 29 30 31 | import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { LessThan, Repository } from 'typeorm'; import { Calculation } from '@amalia/core/models'; import { CalculationStatus } from '@amalia/core/types'; import { dayjs } from '@amalia/ext/dayjs'; import { assert } from '@amalia/ext/typescript'; @Injectable() export class CalculationsProbe { public constructor( @InjectRepository(Calculation) private readonly calculationRepository: Repository<Calculation>, ) {} public async probe(maxPendingMinutes: number = 20) { const pendingCalculations = await this.calculationRepository.find({ where: { status: CalculationStatus.PENDING, createdAt: LessThan(dayjs().subtract(maxPendingMinutes, 'minutes').toDate()), }, }); assert( pendingCalculations.length === 0, `Some calculations (${pendingCalculations.length}) are in pending for more than ${maxPendingMinutes} minutes`, ); } } |