channel.start_consuming() не запущен и не предоставил никаких исключений

#python-3.x #rabbitmq #pika #python-pika

#python-3.x #rabbitmq #pika #python-pika

Вопрос:

Я новичок в python. Я не могу понять, channel.start_consuming() не работает. мой код

 def functions(host):
    global LOGGER
    global RABBITMQ_USER
    global RABBITMQ_PASSWORD
    while True:
        try:
            credentials = pika.PlainCredentials(RABBITMQ_USER, RABBITMQ_PASSWORD)
            connection = pika.BlockingConnection(pika.ConnectionParameters(
                    host=host,
                    credentials=credentials))
            print(connection)
            channel = connection.channel()
            channel.basic_qos(prefetch_size=0, prefetch_count=0, all_channels=True)
            channel.basic_consume(basic_handler,
                              queue='grinshares',
                              no_ack=False)
            channel.basic_consume(basic_handler,
                              queue='poolshares',
                              no_ack=False)
            print("1")
            channel.start_consuming()
            print("2")
        except Exception as e:
            LOGGER.error("Something went wrong: {}n{}".format(e, traceback.format_exc().splitlines()))
            sys.stdout.flush()
            time.sleep(10)
  

Basic-определение обработчика

 def basic_handler(ch, method, properties, body):
    global LOGGER
    global SHARES
    global HEIGHT
    print("I am reached here")
    /// some code
    sys.stdout.flush()
  

Во время запуска я получаю. Я упоминаю некоторые операторы печати в своем коде

 <BlockingConnection impl=<SelectConnection OPEN socket=('127.0.0.1', 40068)->('127.0.0.1', 5672) params=<ConnectionParameters host=
localhost port=5672 virtual_host=/ ssl=False>>>
1
  

он не напечатал 2 — print(«2″) после строки » channel.start_consuming()»
Это не входит в определение «base_handler», упомянутое в basic_consume.

Я не получаю никаких исключений

Комментарии:

1. start_consuming блокируется. Поэтому, если вы специально не прекратите использование (или соединение не будет закрыто), он не перейдет к следующей части. github.com/pika/pika/blob/master/pika/adapters /…

2. @eandersson Спасибо за ответ . Теперь я понимаю рабочую концепцию Rabbitmq 🙂