【发布时间】:2019-10-15 14:14:28
【问题描述】:
我正在使用 pika 1.1.0 和 Python 2.7 连接到 RabbitMQ。 我正在使用 BlockingConnection 并运行一个监听器/消费者,它将不断地监听来自队列的消息。我还使用线程模块创建了一个单独的线程,该线程将每 60 秒发送一个心跳帧以保持正在运行的侦听器连接。心跳发送代码为:
blocking_connection._impl._send_frame(pika.frame.Heartbeat())
time.sleep(60)
几乎每次侦听器启动时,Pika 都会记录一个警告,说“在 fd=10 上指示写入,但写入器回调为无;”此警告从文件 pika.adapters.utils.selector_ioloop_adapter 打印。 但是当我阻止立即发送第一个心跳时,这意味着我将 60 秒睡眠线放在帧发送线之前,警告不会出现。
我试图了解实际发生的情况,为什么启动消费者/侦听器然后立即启动心跳线程会导致此警告?警告的意义和影响是什么?
提前感谢您提供的任何见解。
【问题讨论】:
标签: python python-2.7 rabbitmq pika