fix: Parse Server doesn't shutdown gracefully (#9634)
This commit is contained in:
@@ -42,3 +42,42 @@ export function resolvingPromise() {
|
||||
export function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
export function getConnectionsCount(server) {
|
||||
return new Promise((resolve, reject) => {
|
||||
server.getConnections((err, count) => {
|
||||
/* istanbul ignore next */
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(count);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
export class Connections {
|
||||
constructor() {
|
||||
this.sockets = new Set();
|
||||
}
|
||||
|
||||
track(server) {
|
||||
server.on('connection', socket => {
|
||||
this.sockets.add(socket);
|
||||
socket.on('close', () => {
|
||||
this.sockets.delete(socket);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
destroyAll() {
|
||||
for (const socket of this.sockets.values()) {
|
||||
socket.destroy();
|
||||
}
|
||||
this.sockets.clear();
|
||||
}
|
||||
|
||||
count() {
|
||||
return this.sockets.size;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user