25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import { type PendingVersionRunIdLookup } from "@internal/run-engine";
|
|
import { clickhouseFactory } from "~/services/clickhouse/clickhouseFactoryInstance.server";
|
|
import { logger } from "~/services/logger.server";
|
|
import { singleton } from "~/utils/singleton";
|
|
import { ClickhousePendingVersionLookup } from "./services/clickhousePendingVersionLookup.server";
|
|
|
|
/**
|
|
* Lookup used by `@internal/run-engine`'s `PendingVersionSystem` to find
|
|
* `PENDING_VERSION` TaskRun ids via ClickHouse, removing the need for
|
|
* Postgres index #13 (`TaskRun_status_runtimeEnvironmentId_createdAt_id_idx`).
|
|
*
|
|
* Resolves the ClickHouse client per call via {@link clickhouseFactory}
|
|
* using the `"engine"` client type, configured by `RUN_ENGINE_CLICKHOUSE_*`
|
|
* env vars and routed per-organization for customers with HIPAA / data
|
|
* sovereignty data stores.
|
|
*/
|
|
export const runEnginePendingVersionLookup = singleton(
|
|
"runEnginePendingVersionLookup",
|
|
initializeRunEnginePendingVersionLookup
|
|
);
|
|
|
|
function initializeRunEnginePendingVersionLookup(): PendingVersionRunIdLookup {
|
|
return new ClickhousePendingVersionLookup({ clickhouseFactory, logger });
|
|
}
|