Files
goodbuddy/src/main/execution-stats-worker.ts
T

18 lines
781 B
TypeScript

import { parentPort, workerData } from 'node:worker_threads'
import type { ExecutionStatsInput } from '../shared/assistant-contracts'
import { AssistantDatabase } from './assistant/assistant-database'
const database = new AssistantDatabase((workerData as { databasePath: string }).databasePath)
database.openReadOnly()
parentPort!.on('message', (message: {
id: number; scope: ExecutionStatsInput; activeRequestIds: string[]
}) => {
try {
const result = database.getExecutionStats(message.scope, new Set(message.activeRequestIds))
parentPort!.postMessage({ id: message.id, result })
} catch (error) {
parentPort!.postMessage({ id: message.id, error: error instanceof Error ? error.message : String(error) })
}
})
parentPort!.on('close', () => database.close())