我正在尝试发布一个消息给rabbitmq。 这工作在生产环境env与相同的代码,所以我怀疑这是一个configuration问题。
rbqueue = RabbitMQClientQueue('cn-dip-v3', host = rabbitmq_config['host'], username = rabbitmq_config['user'], password = rabbitmq_config['password']) channel = rbqueue.connection.channel() args = {"x-max-priority": 10} channel.queue_declare(queue='cn-dip-v3', durable=True, arguments=args) result = channel.queue_declare(exclusive=True) callback_queue = result.method.queue msgBody = json.dumps({"ohad":123}) # may happen that sendResponseToDal is True but there is no sendResponseToDal method on server side data = {"body":msgBody,"queue_response" : False} if responseHandler: data["queue_response"] = True corrID = str(uuid.uuid4()) channel.basic_publish(exchange='',routing_key='cn-dip-v3',properties=pika.BasicProperties(priority = 10, reply_to = callback_queue,correlation_id = corrID,),body=json.dumps(data))
queue_declare作品。 如果我删除它并运行相同的行队列被定义。 我在pipe理小组中看到了这一点,奇怪的是,在55672港口而不是15672。

原来的答案是,这是一个旧的安装。 2.8.4在生产阶段vs 3。
安装最新的兔子解决了它。 这里是我使用的安装脚本:
vim install_latest_rabbit.sh #!/bin/sh cat <<EOF > /etc/apt/sources.list.d/rabbitmq.list deb http://www.rabbitmq.com/debian/ testing main EOF curl https://www.rabbitmq.com/rabbitmq-signing-key-public.asc -o /tmp/rabbitmq-signing-key-public.asc apt-key add /tmp/rabbitmq-signing-key-public.asc rm /tmp/rabbitmq-signing-key-public.asc apt-get -qy update apt-get -qy install rabbitmq-server sudo rabbitmqctl add_user guest guest sudo rabbitmqctl set_user_tags guest administrator sudo rabbitmqctl set_permissions -p / guest ".*" ".*" ".*" sudo sh install_latest_rabbit.sh