我需要将不同的消息发送到队列 - 每个消息都由其个人计划表发送。所以我有消息列表和相关的时间间隔来重发每一个。我使用rabbitMQ/pika和apscheduler。根据大量的例子,我创建了最简单的BlockingConnection/channel/queue。之后,我立即尝试推送消息 - 一切正常,我可以在rabbitmq web界面中看到所有消息都在队列中。这里是工作的代码段:从调度程序回调向RabbitMQ(pika)发送消息不起作用
self.cr = Queue('DIRECT_C_QUEUE', True, ex_type='direct')
for i in range(1,10000):
self.cr.channel.basic_publish(exchange='', routing_key='DIRECT_C_QUEUE', body='hello_world')
但是,如果我尝试通过apscheduler回调函数将消息传递(以完全相同的方式) - 只有极少数(约1-10)消息出现在队列中(但回调一直被解雇,发布消息时没有任何异常!)。
最后,我开始收到这样的警告:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pika/connection.py:642:UserWarning :鼠兔:写在1125个字节,并且一个估计的43帧缓冲超过警告阈后面 警告(消息%(self.outbound_buffer.size,est_frames_behind))
并且仍然在队列中没有新邮件。
我是新的python,任何帮助都非常感谢。
这是如何解决问题的? – mike