feat: multi-module iteration
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
import { PrismaService } from '../../common/prisma/prisma.module';
|
||||
import { RedisService } from '../../common/redis/redis.service';
|
||||
|
||||
@Controller('health')
|
||||
export class HealthController {
|
||||
constructor(
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly redis: RedisService,
|
||||
) {}
|
||||
|
||||
@Get()
|
||||
async check() {
|
||||
let db: 'ok' | 'error' = 'ok';
|
||||
let redis: 'ok' | 'error' = 'ok';
|
||||
try {
|
||||
await this.prisma.$queryRaw`SELECT 1`;
|
||||
} catch {
|
||||
db = 'error';
|
||||
}
|
||||
try {
|
||||
const pong = await this.redis.client.ping();
|
||||
if (pong !== 'PONG') redis = 'error';
|
||||
} catch {
|
||||
redis = 'error';
|
||||
}
|
||||
const status = db === 'ok' && redis === 'ok' ? 'ok' : 'degraded';
|
||||
return {
|
||||
status,
|
||||
service: 'dukang-api',
|
||||
version: 'prev1',
|
||||
checks: { db, redis },
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { HealthController } from './health.controller';
|
||||
|
||||
/** Prisma / Redis 已为 Global,Health 直接注入探活 */
|
||||
@Module({ controllers: [HealthController] })
|
||||
export class HealthModule {}
|
||||
Reference in New Issue
Block a user