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(cache: CacheProvider, logger: Logger): void {
|
||||
initialize(cache?: CacheProvider, logger?: Logger): void {
|
||||
if (cache) {
|
||||
this.setCacheProvider(cache);
|
||||
}
|
||||
|
|
@ -113,11 +113,11 @@ export class QMSessionManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
session = validSessions[Math.floor(Math.random() * validSessions.length)];
|
||||
session = validSessions[Math.floor(Math.random() * validSessions.length)] || null;
|
||||
this.logger?.trace(`Selected session`, {
|
||||
uuid: session.uuid,
|
||||
failedCalls: session.failedCalls,
|
||||
successfulCalls: session.successfulCalls,
|
||||
uuid: session?.uuid || 'null',
|
||||
failedCalls: session?.failedCalls || 'null',
|
||||
successfulCalls: session?.successfulCalls || 'null',
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -177,8 +177,13 @@ export class QMSessionManager {
|
|||
let removedCount = 0;
|
||||
|
||||
Object.keys(this.sessionCache).forEach(sessionId => {
|
||||
const initialCount = this.sessionCache[sessionId].length;
|
||||
this.sessionCache[sessionId] = this.sessionCache[sessionId].filter(
|
||||
const initialCount = this.sessionCache[sessionId]?.length;
|
||||
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
|
||||
);
|
||||
removedCount += initialCount - this.sessionCache[sessionId].length;
|
||||
|
|
@ -344,6 +349,10 @@ export class QMSessionManager {
|
|||
const id = `${sessionType.toLowerCase()}_${i}`;
|
||||
const sessionKey = `qm:sessions:${sessionType.toLowerCase()}:${id}`;
|
||||
|
||||
if(!session){
|
||||
this.logger?.warn(`Skipping empty session at index ${i} for ${sessionType}`);
|
||||
continue;
|
||||
}
|
||||
const cachedSession: CachedSession = {
|
||||
...session,
|
||||
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;
|
||||
warn(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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue