18 lines
781 B
TypeScript
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())
|