如何设置连接友好名称RabbitMQ --Python

ccrfmcuu  于 8个月前  发布在  RabbitMQ
关注(0)|答案(1)|浏览(79)

我正在玩RabbitMq,我有一个问题。我有许多并行节点运行,并在rabbitmq服务器上连接。问题是,在connctions是说像ip:port也在ip:port有一个?。有没有办法为python 3.6设置一个友好的名字?

P.S我尝试过这样的事情,但没有成功。

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

另外,我还发现了一个关于golang tho的相关问题。这里Set connection friendly name in Go amqp client
版本

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

有什么想法吗?

gorkyyrv

gorkyyrv1#

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()

相关问题