Я подключаюсь к RabbitMQ, используя pika 1.1.0 и Python 2.7. Я использую BlockingConnection и запускаю прослушиватель / приемник, который будет постоянно прослушивать сообщения из очереди. Я также создаю отдельный поток, используя модуль потоков, который будет отправлять кадр сердцебиения каждые 60 секунд, чтобы поддерживать работающий прослушиватель подключенным. Код отправки пульса:
blocking_connection._impl._send_frame(pika.frame.Heartbeat())
time.sleep(60)
Pika регистрирует предупреждение почти каждый раз, когда слушатель запускается, говоря: «WRITE указан на fd = 10, но обратный вызов писателя равен None;»Это предупреждение выводится из файла pika.adapters.utils.selector_ioloop_adapter. Но когда я запрещаю посылать первое сердцебиение сразу, то есть ставлю 60-секундную спящую линию перед строкой отправки кадра, предупреждение не появляется.
Я пытаюсь понять, что на самом деле происходит,почему запуск потребителя / слушателя, а затем потока пульса сразу после этого вызывает это предупреждение? Каково значение и влияние предупреждения?
Заранее благодарим за любые идеи, которые вы можете предложить.