import { run } from "graphile-worker"; import { createLogger } from "@link-stack/logger"; import * as path from "path"; import { fileURLToPath } from "url"; const logger = createLogger('bridge-worker'); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const startWorker = async () => { logger.info("Starting worker..."); await run({ connectionString: process.env.DATABASE_URL, noHandleSignals: false, concurrency: process.env.BRIDGE_WORKER_CONCURRENCY ? parseInt(process.env.BRIDGE_WORKER_CONCURRENCY, 10) : 10, maxPoolSize: process.env.BRIDGE_WORKER_POOL_SIZE ? parseInt(process.env.BRIDGE_WORKER_POOL_SIZE, 10) : 10, pollInterval: process.env.BRIDGE_WORKER_POLL_INTERVAL ? parseInt(process.env.BRIDGE_WORKER_POLL_INTERVAL, 10) : 1000, taskDirectory: `${__dirname}/tasks`, crontabFile: `${__dirname}/crontab`, }); }; const main = async () => { await startWorker(); }; main().catch((err) => { logger.error({ error: err }, 'Worker failed to start'); process.exit(1); });