如何解决订阅Rabbitmq交换和处理队列
我有一个名为customer_service
的交易所,它在下面绑定了不同的队列。
booking_notifier
排队notify_booking_queue
booking_creation
排队create_booking_queue
这就是我发布到此交易所的方式。
const publish = async (routingKey,message) => {
const connect = await amqp.connect(MQ.URL);
const channel = await connect.createChannel();
await channel.assertExchange(MQ.EXCHANGE_NAME,MQ.EXCHANGE_TYPE,{ durable: true });
await channel.publish(MQ.EXCHANGE_NAME,routingKey,Buffer.from(message),{
persistent: true,});
console.log('Message published: ',MQ.EXCHANGE_NAME,message);
};
// in another file
await MessageBroker.publish(MQ.BOOKING_CREATION_KEY,JSON.stringify({
order_id,user_id: userId,requestedServices: services,}));
要消耗这个,我必须这个。
const consummerEmitter = await MessageBroker.consume('booking-notifier');
consummerEmitter.on('data', (message) => {
console.log(message);
});
我必须始终手动调用该consume
方法。
有什么方法可以使消费者始终听notify_booking_queue
并处理是否有任何消息?
此外,我想为此设置多个侦听器或工作器,该怎么办?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。