added fatal / trade and fixed up session manager
This commit is contained in:
parent
38bd15cad8
commit
6082a54d14
2 changed files with 18 additions and 8 deletions
|
|
@ -56,7 +56,7 @@ export class QMSessionManager {
|
||||||
/**
|
/**
|
||||||
* Initialize with cache provider and logger
|
* Initialize with cache provider and logger
|
||||||
*/
|
*/
|
||||||
initialize(cache: CacheProvider, logger: Logger): void {
|
initialize(cache?: CacheProvider, logger?: Logger): void {
|
||||||
if (cache) {
|
if (cache) {
|
||||||
this.setCacheProvider(cache);
|
this.setCacheProvider(cache);
|
||||||
}
|
}
|
||||||
|
|
@ -113,11 +113,11 @@ export class QMSessionManager {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
session = validSessions[Math.floor(Math.random() * validSessions.length)];
|
session = validSessions[Math.floor(Math.random() * validSessions.length)] || null;
|
||||||
this.logger?.trace(`Selected session`, {
|
this.logger?.trace(`Selected session`, {
|
||||||
uuid: session.uuid,
|
uuid: session?.uuid || 'null',
|
||||||
failedCalls: session.failedCalls,
|
failedCalls: session?.failedCalls || 'null',
|
||||||
successfulCalls: session.successfulCalls,
|
successfulCalls: session?.successfulCalls || 'null',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -177,8 +177,13 @@ export class QMSessionManager {
|
||||||
let removedCount = 0;
|
let removedCount = 0;
|
||||||
|
|
||||||
Object.keys(this.sessionCache).forEach(sessionId => {
|
Object.keys(this.sessionCache).forEach(sessionId => {
|
||||||
const initialCount = this.sessionCache[sessionId].length;
|
const initialCount = this.sessionCache[sessionId]?.length;
|
||||||
this.sessionCache[sessionId] = this.sessionCache[sessionId].filter(
|
if (!initialCount || this.sessionCache[sessionId] === undefined) {
|
||||||
|
this.logger?.trace(`No sessions to clean up for ${sessionId}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sessionCache[sessionId] = this.sessionCache[sessionId]?.filter(
|
||||||
session => session.failedCalls <= SESSION_CONFIG.MAX_FAILED_CALLS
|
session => session.failedCalls <= SESSION_CONFIG.MAX_FAILED_CALLS
|
||||||
);
|
);
|
||||||
removedCount += initialCount - this.sessionCache[sessionId].length;
|
removedCount += initialCount - this.sessionCache[sessionId].length;
|
||||||
|
|
@ -344,6 +349,10 @@ export class QMSessionManager {
|
||||||
const id = `${sessionType.toLowerCase()}_${i}`;
|
const id = `${sessionType.toLowerCase()}_${i}`;
|
||||||
const sessionKey = `qm:sessions:${sessionType.toLowerCase()}:${id}`;
|
const sessionKey = `qm:sessions:${sessionType.toLowerCase()}:${id}`;
|
||||||
|
|
||||||
|
if(!session){
|
||||||
|
this.logger?.warn(`Skipping empty session at index ${i} for ${sessionType}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
const cachedSession: CachedSession = {
|
const cachedSession: CachedSession = {
|
||||||
...session,
|
...session,
|
||||||
lastUsed: session.lastUsed instanceof Date ? session.lastUsed.toISOString() : session.lastUsed,
|
lastUsed: session.lastUsed instanceof Date ? session.lastUsed.toISOString() : session.lastUsed,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ export interface Logger {
|
||||||
error(message: string, meta?: Record<string, unknown>): void;
|
error(message: string, meta?: Record<string, unknown>): void;
|
||||||
warn(message: string, meta?: Record<string, unknown>): void;
|
warn(message: string, meta?: Record<string, unknown>): void;
|
||||||
debug(message: string, meta?: Record<string, unknown>): void;
|
debug(message: string, meta?: Record<string, unknown>): void;
|
||||||
trace?(message: string, meta?: Record<string, unknown>): void;
|
trace(message: string, meta?: Record<string, unknown>): void;
|
||||||
|
fatal(message: string, meta?: Record<string, unknown>): void;
|
||||||
child?(name: string, context?: Record<string, unknown>): Logger;
|
child?(name: string, context?: Record<string, unknown>): Logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue