Script de travail python RabbitMQ utilisant 100% du processeur

J’ai porté ce script python qui fait office de serveur RPC en modifiant l’exemple RPC par défaut dans le tutoriel RabbitMQ trouvé ici . Cela fonctionne bien dans mon ordinateur portable. Mais quand je l’exécute dans un amazon ec2 High CPU Medium Instance avec ces spécifications:

1,7 Gio de mémoire

5 unités de calcul EC2 (2 cœurs virtuels avec 2,5 unités de calcul EC2 chacune)

350 Go de stockage d’instance

Il prend 100% de CPU. Bien que mon ordinateur portable avec presque la même configuration fonctionne avec moins de 4% d’utilisation du processeur.

Voici mon code

#!/usr/bin/env python import pika import commands import socket import base64 connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel = connection.channel() channel.queue_declare(queue='rpc_queue') def on_request(ch, method, props, body): #print body body = base64.b64decode(body) print body run = commands.getoutput(body) response = socket.gethostname() print response ch.basic_publish(exchange='', routing_key=props.reply_to, properties=pika.BasicProperties(correlation_id = \ props.correlation_id), body=str(response)) ch.basic_ack(delivery_tag = method.delivery_tag) channel.basic_qos(prefetch_count=1) channel.basic_consume(on_request, queue='rpc_queue') print " [x] Awaiting RPC requests" channel.start_consuming() 

Comment puis-je réparer cela ?

Finalement trouvé le problème. C’était un bug dans Pika, j’ai eu cette information de la liste de diffusion de rabbitmq. J’avais installé le pika à travers le pypi. pip install pika .

Pour résoudre ce problème, j’ai désinstallé pika

pip uninstall pika

et réinstallé de git

pip install git+https://github.com/pika/pika.git .

Et cela l’a résolu.