ここにあるRabbitMQチュートリアルのデフォルトのRPCの例を変更して、RPCサーバーとして機能するこのpythonスクリプトを作成しました。私のラップトップでは問題なく動作します。しかし、これらの仕様で amazon ec2 High CPU Medium Instance で実行すると:
1.7 GiB のメモリ
5 つの EC2 コンピューティング ユニット (それぞれ 2.5 EC2 コンピューティング ユニットを備えた 2 つの仮想コア)
350 GB のインスタンス ストレージ
100% の CPU を使用します。ほぼ同じ構成の私のラップトップはこれを 4% 未満の CPU 使用率で実行しますが、ラップトップと amazon の両方でこれを Ubuntu-12.04 で実行します。
これが私のコードです
#!/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()
どうすればこれを修正できますか?