⚡ improve memory managment
This commit is contained in:
parent
270ad5ee38
commit
b0385e0fcb
@ -31,5 +31,6 @@ export function initStats() {
|
|||||||
process.memoryUsage().rss / 1024 / 1024
|
process.memoryUsage().rss / 1024 / 1024
|
||||||
)}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
|
)}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
|
||||||
);
|
);
|
||||||
}, 1000 * 10);
|
// TODO: node-os-utils might have a memory leak, more investigation needed
|
||||||
|
}, 1000 * 60 * 5);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
import { WebSocket } from "@fosscord/gateway";
|
import { WebSocket } from "@fosscord/gateway";
|
||||||
import { Message } from "./Message";
|
|
||||||
import { Session } from "@fosscord/util";
|
import { Session } from "@fosscord/util";
|
||||||
|
|
||||||
export async function Close(this: WebSocket, code: number, reason: string) {
|
export async function Close(this: WebSocket, code: number, reason: string) {
|
||||||
console.log("[WebSocket] closed", code, reason);
|
console.log("[WebSocket] closed", code, reason);
|
||||||
if (this.session_id) await Session.delete({ session_id: this.session_id });
|
if (this.session_id) await Session.delete({ session_id: this.session_id });
|
||||||
// @ts-ignore
|
if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout);
|
||||||
this.off("message", Message);
|
if (this.readyTimeout) clearTimeout(this.readyTimeout);
|
||||||
|
|
||||||
|
this.deflate?.close();
|
||||||
|
|
||||||
|
this.removeAllListeners();
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,9 @@ export async function Send(socket: WebSocket, data: Payload) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return new Promise((res, rej) => {
|
return new Promise((res, rej) => {
|
||||||
|
if (socket.readyState !== 1) {
|
||||||
|
return rej("socket not open");
|
||||||
|
}
|
||||||
socket.send(buffer, (err: any) => {
|
socket.send(buffer, (err: any) => {
|
||||||
if (err) return rej(err);
|
if (err) return rej(err);
|
||||||
return res(null);
|
return res(null);
|
||||||
|
@ -46,7 +46,9 @@ export async function listenEvent(event: string, callback: (event: EventOpts) =>
|
|||||||
} else {
|
} else {
|
||||||
const cancel = () => {
|
const cancel = () => {
|
||||||
events.removeListener(event, callback);
|
events.removeListener(event, callback);
|
||||||
|
events.setMaxListeners(events.getMaxListeners() - 1);
|
||||||
};
|
};
|
||||||
|
events.setMaxListeners(events.getMaxListeners() + 1);
|
||||||
events.addListener(event, (opts) => callback({ ...opts, cancel }));
|
events.addListener(event, (opts) => callback({ ...opts, cancel }));
|
||||||
|
|
||||||
return cancel;
|
return cancel;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user