消费者如何在不知道php rabbitmq中的队列名称的情况下同时侦听通道中的所有队列
我试图让消费者在consumer.php中收听无名exchange中的所有队列,但我必须提到队列名称,如图所示:消费者如何在不知道php rabbitmq中的队列名称的情况下同时侦听通道中的所有队列,php,rabbitmq,Php,Rabbitmq,我试图让消费者在consumer.php中收听无名exchange中的所有队列,但我必须提到队列名称,如图所示: $this->channel->basic_consume('Cancelcontact', '', false, false, false, false, array($this, 'processMsg')); $this->channel->basic_consume('Acceptcontact', '', false, false, false, f
$this->channel->basic_consume('Cancelcontact', '', false, false, false, false, array($this, 'processMsg'));
$this->channel->basic_consume('Acceptcontact', '', false, false, false, false, array($this, 'processMsg'));
$this->channel->basic_consume('Declinecontact', '', false, false, false, false, array($this, 'processMsg'));
是否有任何方法可以获取通道中所有队列的名称,并为相同目的编写单个基本消费???即使可能,这也是一个坏主意 拥有多个队列允许您拥有多个使用者,每个使用者都可以处理特定类型的消息。通过将所有队列转到同一消费者,代码将必须检查消息的类型,以确定如何处理该消息 这是RabbitMQ已经为您完成的工作的重复,可能会让您处于“选择性消费者”模式 处理
AcceptContact
或CancelContact
消息的过程将不同。因此,处理这些消息的代码将不同
让处理
AcceptContact
消息的代码仅从AcceptContact
队列中使用。拥有可以处理CancelContact
消息的代码,该代码仅从CancelContact
队列中使用。即使可能,这也不是一个好主意
拥有多个队列允许您拥有多个使用者,每个使用者都可以处理特定类型的消息。通过将所有队列转到同一消费者,代码将必须检查消息的类型,以确定如何处理该消息
这是RabbitMQ已经为您完成的工作的重复,可能会让您处于“选择性消费者”模式
处理AcceptContact
或CancelContact
消息的过程将不同。因此,处理这些消息的代码将不同
让处理
AcceptContact
消息的代码仅从AcceptContact
队列中使用。拥有可以处理CancelContact
消息的代码,该代码仅从CancelContact
队列中使用。在我的情况下,我希望我的消费者能够收听所有队列。我在同一消费者类中为每种类型的消息指定了不同的函数(Cancelconatct、Acceptcontact等)。所以我需要运行consumer类的两个实例。是否有任何方法使使用者可以侦听通道中的所有队列?在同一实例/进程中可以有多个使用者。对“基本消费”(或您正在使用的任何“订阅”方法)的每次调用都是一个消费者。这没什么错。但您需要为每个队列创建一个使用者。没有办法自动侦听所有队列。在我的情况下,我希望我的消费者侦听所有队列。我在同一消费者类中为每种类型的消息指定了不同的函数(Cancelconatct、Acceptcontact等)。所以我需要运行consumer类的两个实例。是否有任何方法使使用者可以侦听通道中的所有队列?在同一实例/进程中可以有多个使用者。对“基本消费”(或您正在使用的任何“订阅”方法)的每次调用都是一个消费者。这没什么错。但您需要为每个队列创建一个使用者。没有办法自动侦听所有队列。