perl - 为什么我在使用 Perl 的 RabbitMQ 消费者时会收到 404 错误?

标签 perl rabbitmq

RabbitMQ 已设置,我可以使用示例脚本:

use Net::RabbitMQ;
my $mq = Net::RabbitMQ->new();
$mq->connect("localhost", { user => "guest", password => "guest" });
$mq->channel_open(1);
$mq->publish(1, "queuename", "Hi there!");
$mq->disconnect();

它发布消息(我猜)。我尝试了以下方法来简单地从队列中获取消息,但得到了 404:

my $mq = Net::RabbitMQ->new();
$mq->connect("localhost", { user => "guest", password => "guest" });
$mq->channel_open(1);
print $mq->get(1, "queuename");

最佳答案

错误消息全文为:

basic_get: server channel error 404, message: NOT_FOUND - no queue 'queuename' in vhost '/' ...

您需要使用 auto_delete => 0 创建队列 - 否则当第一个进程终止时它将消失。看一下 queue_declare 方法。

关于perl - 为什么我在使用 Perl 的 RabbitMQ 消费者时会收到 404 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585546/

相关文章:

perl - 在鸭子类型(duck typing)语言中模拟静态类型的各个方面

perl - 我可以使用 y 运算符在 Perl 中进行非一对一音译吗?

perl - 如何确定数组的元素是否与另一个数组的任何元素匹配?

php rabbitmq消费者重新连接

c# - 为什么 MassTransit 中的简单配置会创建 2 个队列和 3 个交换?

perl - 如何通过命令行开关为我的 Perl 程序启用 Debug模式?

perl如何获取文件名和扩展名

java - RabbitMQ、docker、单队列、多个消费者

Django-Celery 在 Windows Server 上调度日常任务

node.js - 我什么时候需要在 Heroku 中使用工作进程