在兔子消费者中,睡眠需要86%的时间?

时间:2014-06-27 08:23:59

标签: python rabbitmq rabbitpy

我今天发现了一个相当有趣的问题。我有一个包含2K消息的队列。 消费者:

import rabbitpy
with rabbitpy.Connection('amqp://guest:guest@localhost:5672/%2f') as conn:
    with conn.channel() as channel:
        queue = rabbitpy.Queue(channel, 'example')
        for message in queue.consume_messages():
            message.ack()
需要41秒才能收到这些消息并ack。 (消息与4kB to 52kB不等) 然而,出版商花了15秒钟发布它们。

通过分析,我发现有sleep的电话是我们花费 86%的时间。根据我的申请,这是不可接受的。有人能帮助我摆脱这种睡眠吗? (如果CPU周期浪费或任何消息到达之前,我都可以。)

Zoomed in screenshot The culprit found by the profiler

0 个答案:

没有答案