← back to Homesonspec
apps/workers/src/index.ts
26 lines
import { work } from "@homesonspec/shared";
import { meridianHomesAdapter } from "@homesonspec/collector-meridian-homes";
import { runPipeline } from "./pipeline";
/**
* Queue-backed worker daemon (pg-boss). Stages stay pure functions; this
* process merely subscribes to job names and invokes them. Scheduling of
* refresh jobs per source-registry intervals lands with live sources.
*/
const ADAPTERS = { [meridianHomesAdapter.key]: meridianHomesAdapter };
async function main() {
await work<{ adapterKey: string }>("pipeline.run", async ({ adapterKey }) => {
const adapter = ADAPTERS[adapterKey];
if (!adapter) throw new Error(`unknown adapter ${adapterKey}`);
const summary = await runPipeline(adapter);
console.log(`[pipeline.run] ${adapterKey}:`, JSON.stringify(summary));
});
console.log("workers: subscribed to pipeline.run");
}
main().catch((error) => {
console.error(error);
process.exit(1);
});