#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 🙂