2011-07-18 12 views
2

私はRabbitMQに深刻な問題があります。一定量のメッセージが受信された後、消費者は単にメッセージの受信を停止する。彼らはまだ接続されていますが、もはやメッセージを受信して​​いません。私はこの問題について他の投稿を見つけましたが、答えはありません。RabbitMQコンシューマはメッセージの受信を停止します

ここに私が使用している接続ラッパーがあります:http://pastebin.com/XVY3HNGqです。 私はpythonの非同期のamqp libであるstormed-amqpを使用します。

私は、ackやackとqosプリフェッチカウントが100のメッセージを消費しようとしました(この種の問題に対するいくつかの回答に示されています)。

私は "rabbitmqctl list_queues name messages_ready messages_unacknowledged"を実行すると、ackを使用したときに未処理メッセージの準備完了メッセージと "プリフェッチカウント"(100)値が大量にあります。

私は実際に起こっていることを知りません! ありがとうございます。

+0

問題の解決策をお探しですか? – Dojo

答えて

0

コードを見るとすぐに間違ったものは見えません。 no-ackをTrueに設定し、プリフェッチカウントを0に設定すると正常に動作します。あなたのアプリケーションが何らかの例外のためにクラッシュしていないと確信していますか?それが凍る瞬間について特別なことはありますか?

RabbitMQ Discussメーリングリストにお問い合わせください。開発者は通常、すべての質問に答え、そのうちのいくつかはPython AMQPクライアントに精通しています。

0

あなたはUbuntuまたはDebianを使用していて、古いバージョンのRabbitMQを使っていると思います。私は同じ問題を抱えていて、rabbitmq.comからRabbitMQ 2.31以降をインストールしたときにすべて消えました。

古いUbuntuとDebianパッケージに対しては、ただNOと答えてください。

0

私は同じ問題を抱えています(しかし、Javaコンシューマー)。その原因は、rabbitmqサーバーがファイル記述子を使い果たしていることです(Ubuntuのデフォルトは1024です)。 rabbitmqプロセスを実行するユーザーのために、rabbitmqサーバーを実行しているマシンで、linuxのオープンファイルの制限を増やしてください。これらの制限を増やすための方法がここで説明されていますhttp://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

乾杯

関連する問題