Files
sf-sim/packages/sim-consumidor-objenious/config/eventBusConfig.ts

46 lines
1.4 KiB
TypeScript

import { RabbitMQEventBus, RMQConnectionParams } from "#shared/infrastructure/RabbitMQEventBus"
import { env } from "./env"
const rmqUser = env.RABBITMQ_USER
const rmqPass = env.RABBITMQ_PASSWORD
const rmqHost = env.RABBITMQ_HOST
const rmqPort = Number(env.RABBITMQ_PORT)
const rmqSecure = false
const rmqVhost = env.RABBITMQ_VHOST
export const rmqConnOptions = <RMQConnectionParams>{
username: rmqUser,
password: rmqPass,
vhost: rmqVhost,
hostname: rmqHost,
port: rmqPort,
secure: rmqSecure,
}
export const rabbitmqEventBus = new RabbitMQEventBus({
connectionParams: rmqConnOptions
})
export async function startRMQClient() {
await rabbitmqEventBus.connect()
const channel = rabbitmqEventBus.channel
// Bindings especificos, deberia meterlos en la clase
try {
await rabbitmqEventBus.channel?.assertQueue("sim.objenious", {})
console.log("[i] Las colas para objenious existen")
} catch (e) {
console.log("[i] Cola de sims de objenious creada")
await channel?.bindQueue("sim.objenious", "sim.exchange", "sim.objenious.*")
}
try {
await rabbitmqEventBus.channel?.assertQueue("sim.dlx.objenious")
console.log("[i] Las colas dlx para objenious existen")
} catch (e) {
console.log("[i] Cola de dlx de objenious creada")
await channel?.bindQueue("sim.dlx.objenious", "sim.dlx", "sim.objenious.*")
}
return rabbitmqEventBus
}