我有大约400万条消息在rabbitmq中的2个队列中排队,我在python中编写了一个使用这两个队列的消费者,当我运行消费者从队列中读取CPU使用量似乎达到124左右时% 中央处理器。我面临的另一个问题是我的消费者获得消息的速度明显高于我承认的速度。一段时间后,消费者只是根据rabbitmq管理层下车。我的意思是他们完全停止工作。这是我编写的从队列中消耗的代码
class MetConsumer(Consumer):
print 'Metrics consumer started...'
def handle_payload(self, channel, method, properties, body):
print "met"
jsonItem = json.loads(body)
type = jsonItem['type']
data = jsonItem['data']
print json.dumps(data)
self.medium.server.invoke('Send', method.delivery_tag, type, json.dumps(data))
channel.basic_ack(method.delivery_tag)
正如您所看到的,我会在发送消息后尽快确认消息。我每秒收到4000条消息,但只承认大约20条消息