問題タブ [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 投票する
0 に答える
489 参照

python - Pika BlockingConnection が Windows で間違った例外をスローする

BlockingConnectionを使用してRabbitMQ にアクセスしています。現在、RabbitMQ に到達できなくなった場合に対処しようとしています。

documentationによると、接続が閉じられると、次のことが起こります。

これは、BlockingConnection ではサポートされていません。BlockingConnection で接続が閉じられると、代わりに pika.exceptions.ConnectionClosed 例外が発生します。

OS X では、まさにこれが起こります。一方、Windows では、別の例外がスローされます。

エラー: (10038、「ソケットではないものに対して操作が試行されました」)

何故ですか?

最新バージョンの pika 0.9.13 を使用しています。

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

rabbitmq - Rabbitmq のアクセス許可

私はpythonでrabbitmqのアクセス許可を扱っています。アプリケーションには、複数のクライアントと 1 つのサービス プロバイダーがあります。クライアントを特定のキューに制限したいのですが、サービス プロバイダーはすべてのキューを読み取ることができ、どのキューにも書き込めないようにする必要があります。次のように権限を設定しようとします:

サービスプロバイダーアカウントについては、次を設定しました

私がしたクライアントのために

また、メッセージがサービス プロバイダーに配信されることはありません。ただし、設定した場合

できます。しかし、クライアントを特定のキューに制限する必要があります。あなたの誰かがそのようなことを達成しようとしていますか? ヒントをいただければ幸いです。ありがとう。

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

rabbitmq - RabbitMQ とピカ

私はpython lib pikaを使用しています.fowはrabbitmqで動作します。RabbitMq を実行してリッスン0.0.0.0:5672し、別のサーバーから彼に接続しようとすると、例外が発生します。

socket.timeout: タイムアウトしました

公式ドキュメントRabbitMQ(Hello, World) を使用したPythonコードで、iptablesを無効にしようとしました。しかし、スクリプトを host で実行すると"localhost"、すべてうまくいきます。私の /etc/rabbitmq/rabbitmq.config

コード:

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

python - pika の「queue_declare」は、キューが存在する場合でも、passive="True" を設定してクエリを実行すると、「None」を返します。

キュー「メール」からのデータを消費する消費者にピカを使用しています

queue_declarefrom pika は、キューが存在する場合でも、None設定によりクエリを実行すると返されます。passive="True"

Web インターフェイスを使用してキュー「email」を作成すると、そのキューが存在することがわかります (サードパーティが作成することになっています。これはテストのためだけに行っています)。

私のプログラムでは、チャネルを開いて電子メール キューで消費を開始する前に、キューが既に存在することを確認したいので、次のように設定passiveしますTrue

結果として得られるのは " " ですが、キューが既に存在するNoneため、" " を取得することを期待していました。okポインタはありますか?Web UI を使用してキューを宣言するときに、コールバックが指定されていないためですか? キューが存在するかどうかを知りたいだけですが、ピカqueue_declare関数は引数としてコールバック関数を呼び出し、指定されていないと文句を言います。

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

python - シグナル処理ピカ/パイソン

pika.BlockingConnectionメッセージごとにいくつかのタスクを実行するコンシューマーで使用しています。また、すべてのタスクを完全に実行した後にコンシューマーが適切に終了するように、シグナル処理も追加しました。

メッセージが処理され、シグナルが受信されている間"signal received"、関数から取得するだけですが、コードは終了しません。そこで、コールバック関数の最後に受信したシグナルもチェックすることにしました。問題は、このコードにはさらに多くの関数があるため、信号を何回チェックするかです。無理をせずにシグナルを処理するより良い方法はありますか?

これは私の最初の質問です。詳細が必要な場合はお知らせください。

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

python - RabbitMQ のおかげで Python と NodeJS からのログを一元化

NodeJS、RabbitMQ、および Python ワーカーを使用するサービスがあります。NodeJS ブローカーは MongoDB を使用し、Python ワーカーは rabbitMQ サーバーへの接続のみを持っています。

データベース内のさまざまな言語からのすべてのログを一元化できるようにしたいと考えています。

私のアイデアは、すべてのログを rabbitMQ キューにプッシュしてから、NodeJS が使用する mongoDB にプッシュすることでした。

これがログを一元化するための最良の方法であるかどうか、およびログの Python モジュールを pika コンシューマーにリダイレクトするにはどうすればよいかを知りたいです。

0 投票する
4 に答える
17239 参照

python - Asyncore で Pika と RabbitMQ を使用した AMQPConnectionError - なぜですか?

Asyncore では AMQPConnectionError が発生するのに、BlockingConnection では発生しないのはなぜですか?

「Asyncore は Windows では動作しません」というだけの場合は、その使用を禁止するものをまだ見つけていませんが、それはそれで構いません。(この問題はプラットフォームに依存しません。) 移行を容易にするために、Python 2.7 と Python 3.4 の両方で利用できる非同期ライブラリを使用したいと思います。Asyncore はここで動作するはずです。

Python 2.7.6 および pika 0.9.13 で RabbitMQ 3.2.4 を使用しています。ユーザーと管理者の実行レベルに違いはありませんでした。上記の更新された警告メッセージを除いて、コード内のロガーの有無はエラーに関係ありません。Linux (Ubuntu 14.04) と Windows 7 でも同じエラーが発生するため、プラットフォームの問題ではありません。

BlockingConnection を使用すると pika のパフォーマンスがかなり低下するため、代わりに Asyncore アダプターを試してみたいと思いました。テストベッドのセットアップは非常に簡単に思えます(資格情報を与えてみましたが、それは問題ではなく、与えられていない場合はコールバックがスタブ化されます...どちらの方法でも失敗します。):

チュートリアルごとに BlockingConnection を使用すると、機能しますが、スループットが低くなります。

AsyncoreConnection を使用すると、私が試したこれのすべてのバリアントがすぐに失敗します。

エラー:

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

python - pika を使用して Python クライアントで RabbitMQ クラスターに接続する方法は?

Pika パッケージ (0.9.13) を使用し、RabbitMQ クラスター内の 1 つのノードからデータを取得する Python クライアントがあります。クラスターは、2 つの異なるホスト (url_1 と url_2) に配置された 2 つのノードで構成されます。Python クライアントを両方のノードにサブスクライブさせるにはどうすればよいですか?

それが私のコードの主な構造です:

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

python - CRITICAL:pika.connection:クローズ時にフレームを送信しようとしました

Pika を使用して、Websocket を Tornado と RabbitMQ に統合しました。しばらくの間、さまざまなキューで正常に実行されます。次に、次のエラーが発生します。

CRITICAL:pika.connection:クローズ時にフレームを送信しようとしました

からコード参照を取得しましたhttps://github.com/haridas/RabbitChat/blob/master/tornado_webapp/rabbit_chat.py

コードを徹底的に調べましたが、なぜこのようなエラーが発生するのか理解できません。誰かがトラブルシューティングを手伝ってくれますか!

ありがとう!

また、背圧乗数を変更しても問題は解決しないことに注意してください。だから、これに対する本当の解決策を探しています。

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

python - RabbitMQ: ピーカになくてセロリには何がありますか?

私は、RabbitMQ を介していくつかの分散タスクを動作させることに取り組んできました。

Celery に自分のやりたいことをさせようとしてしばらく時間を費やしましたが、うまくいきませんでした。

次に、Pika を使用してみましたが、問題なく、数分以内に機能しました。

Celery の代わりに Pika を使用することで見逃しているものはありますか?