2013-02-14 10 views
6

私はRabbitMQチュートリアルのデフォルトRPCの例を変更してRPCサーバとして動作するこのpythonスクリプトを、hereとしています。それは私のラップトップで正常に動作します。しかし、私はこれらの仕様とのAmazon EC2ハイCPUミディアムインスタンスでそれを実行するとメモリの100%CPUを使用したRabbitMQ pythonワーカースクリプト

1.7ジブ

5つのEC2コンピュートユニットの

(2.5 EC2計算ユニットそれぞれに2つの仮想コア) 350GBのインスタンスストレージ

これは100%CPUを消費します。ほぼ同じ設定の私のラップトップは、4%以下のCPU使用率でこれを実行しますが、これは私のラップトップとアマゾンの両方で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() 

私はこれをどのように修正することができますか?

答えて

5

最後に問題が見つかりました。ピカのバグだったので、私はrabbitmqのメーリングリストからこの情報を得ました。私はピピを通してピカをインストールしました。 pip install pika。この問題を解決するには

私はナキウサギ

pip uninstall pika

をアンインストールし、gitの

pip install git+https://github.com/pika/pika.gitからそれを再インストールしました。

それを解決しました。

+1

問題へのリンクを提供できるといいですね。私は、非常に長い時間を知っています。しかし、それは多くの助けになります! –

+0

@HariKrishnanこれはバグhttps://github.com/pika/pika/issues/361です。 –