fix: recover CMPP slots after gateway restart

This commit is contained in:
hectorzhao
2026-07-16 18:02:25 +08:00
parent faa716b8d0
commit 23a1f6fa15
3 changed files with 8 additions and 0 deletions
+4
View File
@@ -681,6 +681,10 @@ export class SmsConfigService {
if (data.remoteIp && !isIpAllowed(data.remoteIp, application.ipAllowlist.map((item) => item.ipCidr))) {
throw new ForbiddenException('CMPP source IP is not in application allowlist');
}
// A Gateway process can disappear before it reports disconnect. Prune its
// expired rows here so a restarted process can reclaim connection slots
// without waiting for an operator to open the connection-list page.
await this.markTimedOutDownstreamConnections(observedAt);
const activeConnections = await this.prisma.cmppDownstreamConnection.findMany({
where: { applicationId: application.id, status: 'connected' },
select: { connectionId: true },