| | |
| |
|
| | import { setTimeout } from "node:timers/promises"; |
| | import { collections } from "./database"; |
| |
|
| | let closed = false; |
| | process.on("SIGINT", () => { |
| | closed = true; |
| | }); |
| |
|
| | export let abortedGenerations: Map<string, Date> = new Map(); |
| |
|
| | async function maintainAbortedGenerations() { |
| | while (!closed) { |
| | await setTimeout(1000); |
| |
|
| | try { |
| | const aborts = await collections.abortedGenerations.find({}).sort({ createdAt: 1 }).toArray(); |
| |
|
| | abortedGenerations = new Map( |
| | aborts.map(({ conversationId, createdAt }) => [conversationId.toString(), createdAt]) |
| | ); |
| | } catch (err) { |
| | console.error(err); |
| | } |
| | } |
| | } |
| |
|
| | maintainAbortedGenerations(); |
| |
|