問題タブ [pika]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1370 参照

python - RabbitMQ クライアントのパフォーマンス

pikaクライアントでログファイルをRabbitMQに解析しようとしている皆さん:

パフォーマンスについては、1 台の ec2 マシンが約 300 メッセージ/秒で送信できることがわかりました。これは m1.small から m1.large まで変わりません。

パフォーマンスを向上させるには、時間をかけて上記を C で書き直す必要がありますか、それとも他の場所を探す必要がありますか?

同じ RabbitMQ マシンでローカルに実行されているテストは、まったく同じものを示しています。

runjava.sh com.rabbitmq.examples.MulticastMain テストをローカルで実行すると、10K/秒のパフォーマンスが表示されます。これにより、Python クライアントが遅いか、セットアップを適切にテストしていないと思われます。

0 投票する
2 に答える
1033 参照

python - pika の on_open_error_callback メソッドのシグネチャはどのように見えますか?

私はpythonを使用しており、クラスのメソッド内から

私のソースコードでは、メソッドを(クラス内で)次のように宣言しています。

ただし、実行時に次のエラーが発生します。

このコールバックの実際のメソッド シグネチャを示すドキュメントを見つけることができませんでした。メソッドの非クラス定義を探していると思われます(つまり、パラメーターとしての自己がありません)。あれは正しいですか?もしそうなら?接続エラー時に再接続を試行できるように、クラス変数にアクセスするにはどうすればよいですか?

私が最初に探しているのは、メソッドの署名がどのように見えるべきかということだと思いますか?

前もって感謝します

0 投票する
3 に答える
3778 参照

python - Pika exchange_declare コールバックの取引所名

コールバックで交換名を使用しようとしていexchange_declareます。SelectConnectionPika で非同期リクエスト用のアダプターを使用します。

私の考えは、最初に私のプログラムで交換、キュー、およびバインディングのリストを作成することです。次に、複数の交換とキューの宣言を Pika にディスパッチし、各バインディングに必要なキューと交換が DeclareOK メッセージを受け取るとすぐにバインディングを作成します。

これは、作成するバインディングと関連付けるために、コールバック内の交換とキューの名前を知る必要があることを意味します。

このようなもの:

これにより、次の出力が得られます。これは、(予想どおり) 交換が最初に宣言され、コールバックが後でトリガーされることを明確に示しています。

responseタイプがpika.frame.Methodであることがわかりましたが、そこからどうすればよいですか? 交換は、おそらく順番に宣言されることが保証されていますか?

0 投票する
1 に答える
1497 参照

python - RabbitMQ Python ライブラリ チェック ステータス

皆さん、私はエラーが発生した接続をチェックし、それが発生した場合に警告するためにログに記録しようとしています。

何らかの理由で、これは機能せず、吐き出しています:

スクリプトが異常終了するのではなく、どのようにエラーをキャッチして警告し、チェックを続行できますか?

ありがとう!

0 投票する
1 に答える
152 参照

python - RabbitMQ: ジョブが 2 つの異なるワーカーで同時に実行されるのを防ぐ

要求で指定された特定の Django オブジェクトでアクションを実行するジョブを受け取る pika lib を使用して、2 つの RabbitMQ ワーカーを持つ Python Django プロジェクトがあります。

問題は、ワーカー A と B が同じ Django オブジェクト x に対して同時にアクションを実行しないようにすることです。問題が発生する可能性があるからです。どちらのワーカーが最初に実行されるかは問題ではありませんが、A が x で作業していて、B が x で作業するジョブを受け取った場合、A が完了するまでこのジョブを待機させたいと考えています。

つまり、問題は、他のワーカーが何に取り組んでいるかを知ることができ、特定の時間までジョブを一時停止できることに要約されます。私の実際のプロジェクトでは、これを適用する必要があるワーカーが 2 つ以上あることに注意してください。この例では、分析しやすくするために 2 つを選択します。

助けてくれてありがとう、マティアス

0 投票する
0 に答える
2634 参照

python - RabbitMQ 接続クローズ例外

ファイル「/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py」、218行目、process_data_eventsで例外が発生します.ConnectionClosed() pika.exceptions.ConnectionClosed

start_consuming がブロックされているため、RabbitReceiver の作成後のコードはおそらく実行されないことがわかっています。でも今のところ、その心配はありません。なぜこのエラーが発生するのか知りたいですか?おそらく私は何かを逃した...

0 投票する
2 に答える
4539 参照

python - rabbitmq、ピカパイソンで優雅に消費を一時停止および再開する方法

メッセージの受信には basic_consume() を使用し、消費のキャンセルには basic_cancel を使用していますが、問題があります。

これが pika.channel のコードです

消費をキャンセルするたびにわかるように、consumer_tag が _canceled リストに追加されます。このタグを basic_consume で再度使用すると、 duplicateConsumer 例外が発生します。そうですね、毎回新しい consumer_tag を使用できますが、実際にはそうではありません。遅かれ早かれ、生成されたタグは以前のもののいくつかと完全に一致するためです。

pika で優雅に消費を一時停止および再開するにはどうすればよいですか?

0 投票する
2 に答える
3440 参照

python-2.7 - pika connection.close() を使用すると、「WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0」が返されます

pika を使用して RabbitMQ サーバーへの接続を閉じると、警告WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0が表示されます。

noconnection.close()を使用すると、警告は表示されません。この警告の原因は何ですか? これは無視してよいものですか?

Mac OSX で Python 2.7、RabbitMQ 3.2.2、iPython 1.1.0、pika 0.9.13 を使用。

ここに画像の説明を入力

0 投票する
1 に答える
1821 参照

rabbitmq - Pika コンシューマで取引所を指定するには?

タイトルのすべて:rabbitmqのドキュメントからの以下のメソッドでは、発行が引数として交換を取ることがわかりますが、消費者はそうではありません。

また、私がそれを行っている間、コンシューマーはパブリッシュqueueと同じですか? routing_keyサブスクライバーがタグのさまざまな正規表現をサブスクライブするように、ルーティングキーはタグのようなものだと思いました

消費するコード:

投稿するコード: