【问题标题】:How to set connection friendly name RabbitMQ --Python如何设置连接友好名称 RabbitMQ --Python
【发布时间】:2019-10-07 18:51:21
【问题描述】:

您好,我正在玩 RabbitMq,我有一个问题。我有许多并行节点正在运行并连接在 rabbitmq-server 上。问题是,在 conncetions 中声明为 ip:portip:port 下还有一个 ?。有没有办法为 python 3.6 设置一个友好的名称?

P.S 我试过这样的事情没有成功

                    parameters = pika.ConnectionParameters(
                        host='localhost',
                        virtual_host='/',
                        client_properties={
                            'connection_name': 'random name',
                        },
                    )
                    connection = pika.BlockingConnection(parameters)

P.S 我还发现了一个关于 golang tho 的相关问题。这里How to set connection friendly name

版本

pika = '1.1.0'
RabbitMq = '3.8.0'
Erlang = '22.1.1'
Python = ' 3.6.8'

有什么想法吗? :)

【问题讨论】:

  • 当您提出问题时,您必须提供使用的所有软件的版本 - Pika 库版本、RabbitMQ、Erlang、操作系统和 Python (3.6.???)
  • 你好对不起。 pika = "==1.0.1" RabbitMq = '3.8.0' Erlang = '22.1.1' Python = '3.6.8'

标签: python-3.x rabbitmq rabbitmqctl


【解决方案1】:

This code 设置连接名称,如下所示:

import functools
import logging
import pika

LOG_FORMAT = ('%(levelname) -10s %(asctime)s %(name) -30s %(funcName) '
              '-35s %(lineno) -5d: %(message)s')
LOGGER = logging.getLogger(__name__)

logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)


def on_message(chan, method_frame, _header_frame, body, userdata=None):
    """Called when a message is received. Log message and ack it."""
    LOGGER.info('Userdata: %s Message body: %s', userdata, body)
    chan.basic_ack(delivery_tag=method_frame.delivery_tag)


def main():
    """Main method."""
    credentials = pika.PlainCredentials('guest', 'guest')
    props = { 'connection_name' : 'https://stackoverflow.com/q/58275505/1466825' }
    parameters = pika.ConnectionParameters('localhost', credentials=credentials, client_properties=props)
    connection = pika.BlockingConnection(parameters)

    channel = connection.channel()
    channel.exchange_declare(
        exchange='test_exchange',
        exchange_type='direct',
        passive=False,
        durable=True,
        auto_delete=False)
    channel.queue_declare(queue='standard', auto_delete=True)
    channel.queue_bind(
        queue='standard', exchange='test_exchange', routing_key='standard_key')
    channel.basic_qos(prefetch_count=1)

    on_message_callback = functools.partial(
        on_message, userdata='on_message_userdata')
    channel.basic_consume('standard', on_message_callback)

    try:
        channel.start_consuming()
    except KeyboardInterrupt:
        channel.stop_consuming()

    connection.close()


if __name__ == '__main__':
    main()

注意:RabbitMQ 团队会监控 rabbitmq-users mailing list,并且有时只回答 StackOverflow 上的问题。

【讨论】:

  • 您好!感谢您的时间。我试过了,但没有运气。代码运行正常,但一直显示?在 ip::port 下
  • 我知道它在我刚刚尝试过的情况下有效。请运行我使用 Pika 1.1.0 提供的代码并分享您的环境的输出。它将在 DEBUG 级别记录。
  • 我刚刚更新到 pika 1.1.0。仍然没有运气。我知道你的工作肯定。我就是找不到我的愚蠢错误!
  • 当我复制粘贴您的代码时,它可以工作。当我尝试在我的身上复制它时,我得到? 作为名称
  • 你说的很不清楚。当您说“复制粘贴您的代码”时,您是运行我的 整个 代码示例还是只复制创建连接的部分?如果您只是分享您不起作用的代码,这一切都会容易得多
猜你喜欢
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2011-11-10
  • 2013-05-10
  • 2021-10-18
  • 2011-11-24
  • 1970-01-01
相关资源
最近更新 更多