perf: batch gateway submits and isolate callbacks

This commit is contained in:
hectorzhao
2026-08-25 11:39:59 +08:00
parent c6f11014d6
commit 761c123b65
29 changed files with 1912 additions and 193 deletions
+18
View File
@@ -7,7 +7,25 @@ describe('PrismaService', () => {
expect(Object.getOwnPropertyDescriptor(prisma, 'operationLog')).toEqual(
expect.objectContaining({ configurable: true }),
);
expect(prisma.getPoolState()).toEqual({ max: 32, total: 0, idle: 0, waiting: 0 });
await prisma.$disconnect();
});
it('reserves a bounded database pool for the isolated Gateway callback process', async () => {
const previousRole = process.env.CMPP_PROCESS_ROLE;
const previousMax = process.env.API_CALLBACK_DB_POOL_MAX;
process.env.CMPP_PROCESS_ROLE = 'callback';
process.env.API_CALLBACK_DB_POOL_MAX = '12';
try {
const prisma = new PrismaService();
expect(prisma.getPoolState()).toEqual({ max: 12, total: 0, idle: 0, waiting: 0 });
await prisma.$disconnect();
} finally {
if (previousRole === undefined) delete process.env.CMPP_PROCESS_ROLE;
else process.env.CMPP_PROCESS_ROLE = previousRole;
if (previousMax === undefined) delete process.env.API_CALLBACK_DB_POOL_MAX;
else process.env.API_CALLBACK_DB_POOL_MAX = previousMax;
}
});
});