fix(CQ-API-4): Remove Redis event listeners in onModuleDestroy
Add removeAllListeners() call before quit() to prevent memory leaks from lingering event listeners on the Redis client. Also update test mock to include removeAllListeners method. Refs #339 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,10 @@ vi.mock("ioredis", () => {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeAllListeners() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
// String operations
|
// String operations
|
||||||
async setex(key: string, ttl: number, value: string) {
|
async setex(key: string, ttl: number, value: string) {
|
||||||
store.set(key, value);
|
store.set(key, value);
|
||||||
|
|||||||
@@ -63,8 +63,10 @@ export class ValkeyService implements OnModuleInit, OnModuleDestroy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async onModuleDestroy() {
|
async onModuleDestroy(): Promise<void> {
|
||||||
this.logger.log("Disconnecting from Valkey");
|
this.logger.log("Disconnecting from Valkey");
|
||||||
|
// Remove all event listeners to prevent memory leaks
|
||||||
|
this.client.removeAllListeners();
|
||||||
await this.client.quit();
|
await this.client.quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user