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

64 lines
1.6 KiB
TypeScript
Raw Normal View History

2026-01-16 11:14:35 +01:00
import { RabbitMQEventBus, RMQConnectionParams } from "#shared/infrastructure/RabbitMQEventBus"
import { Channel } from "amqp-connection-manager"
2026-01-16 11:14:35 +01:00
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,
buildStructure: buildQueues
2026-01-16 11:14:35 +01:00
})
function buildQueues(channel: Channel) {
channel?.assertQueue("sim.objenious")
.then(e => {
console.log("[o] Creada la cola " + e.queue)
channel?.bindQueue("sim.objenious", "sim.exchange", "sim.objenious.*")
.then(e => {
console.log("[o] Bindeada la cola sim.objenious a sim.exchange ")
})
.catch(e => {
console.error(e)
})
})
.catch(e => {
console.error(e)
})
channel?.assertQueue("sim.objenious.dlx")
.then(e => {
console.log("[o] Creada la cola " + e.queue)
channel?.bindQueue("sim.objenious.dlx", "sim.dlx", "sim.objenious.*")
.then(e => {
console.log("[o] Bindeada la cola sim.objenious.dlx a sim.dlx")
})
.catch(e => {
console.error(e)
})
})
.catch(e => {
console.error(e)
})
}
export async function startRMQClient() {
await rabbitmqEventBus.connect()
2026-01-16 11:14:35 +01:00
return rabbitmqEventBus
}