import { startOutboundDeliveryWorker } from "./outboundDelivery";
import { prisma } from "../utils/prisma";
import { getRedis } from "../utils/redis";

const worker = startOutboundDeliveryWorker();
console.log("[delivery-worker] started queue omni:outbound");

async function shutdown(signal: string) {
  console.log(`[delivery-worker] shutting down by ${signal}`);
  try {
    await worker.close();
  } catch {
    // ignore shutdown errors
  }
  try {
    const redis = getRedis();
    await redis.quit();
  } catch {
    // ignore shutdown errors
  }
  try {
    await prisma.$disconnect();
  } catch {
    // ignore shutdown errors
  }
  process.exit(0);
}

process.on("SIGINT", () => {
  void shutdown("SIGINT");
});
process.on("SIGTERM", () => {
  void shutdown("SIGTERM");
});

