問題タブ [python-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 に答える
499 参照

python - 永続的な配信モードが有効になっている場合、ワーカーが失敗したメッセージを即座に取得するように強制する

Python-Pikaを使用してメッセージをフェッチするように、RabbitMQ サーバーをセットアップしました。問題は、永続配信モードを有効にすると、ワーカーがメッセージの処理に失敗することです。メッセージを解放する代わりに、RabbitMQ 接続がリセットされるまでメッセージを保持します。

処理に失敗したメッセージが、同じワーカーを含む利用可能なワーカーから合理的な時間枠内で再度取得されるようにする方法はありますか?

これは私の現在のコードです

アイデアは、メッセージを失いたくないということです。代わりに、メッセージを再発行するか、失敗した場合は再度取得することを望んでいます。メッセージがワーカーによって正常に処理されるまで、これは常に当てはまります。これは通常、ワーカーの 1 つが HTTP サーバーへの接続を開くことができない場合に発生します。

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

python - Pika blocks_connection.py RabbitMQ への接続のランダム タイムアウト

私はマシン上でウサギのmqを実行しています

  • クライアントと rabbitMQ の両方が同じネットワーク上で実行されている
  • rabbitMQ には多くのクライアントがあります
  • 私はrabbitMQからクライアントにpingを実行できます
  • マシン間で測定された最長の遅延は 12.1 ミリ秒です
  • ネットワークの詳細: 標準スイッチ ネットワーク (単一の物理マシンで実行されている仮想マシンのネットワーク - vmware VC を使用)

RPC 接続の初期化時にランダムなタイムアウトが発生する

/usr/lib/python2.6/site-packages/pika-0.9.5-py2.6.egg/pika/adapters/blocking_connection.py

問題は、タイムアウトが一貫しておらず、時々発生することです。

この問題を手動でテストし、同じマシンからblocking_connection.pyを1000回実行すると、タイムアウトは発生しません。

これは、失敗したときに表示されるエラーです:

手伝ってください

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

python-2.7 - サブスクライブ中にファイルを書き込むコールバックを追加する方法

これはおそらく、ピカを使用するのと同じくらい Python コールバックに関する質問です。RabbitMQ のキューにサブスクライブし、配信されたメッセージのペイロードを処理し、そのペイロードを一連の (ディスク) ファイルに書き込むコードを開発しようとしています。そこで、 http://www.rabbitmq.com/tutorials/tutorial-one-python.htmlにある単純な「Hello World」の例を使用して、コールバック関数にロジックを追加しました (偶然にも「コールバック」と呼ばれます)。 ) を使用して、受信したメッセージ ペイロードをファイルに書き込みます。

主な問題は次のとおりです。特定の時間が経過した場合、たとえば 300 秒 (5 分) プロセスがファイルを閉じて新しいファイルを作成し、その後受信した新しいメッセージを書き込む追加のコードを書きたいと思います。それ。等々 ...

しかし、私が見ている問題は、メッセージがキューに到着したときにのみコールバック関数が呼び出されることです。そのコールバック関数の外に、経過時間を計測する何らかの処理が必要だと思います....

理論的根拠は、MQ キューで受信したメッセージを含む一連のディスク ファイル (タイムスタンプに基づいてすべてが一意の名前を持つ) を作成することです。メッセージの受信が遅い場合は、現在開いているファイルを閉じて (下流でさらに処理できるようにするため)、別のファイルを開きます。

また、消費開始呼び出し (channel.start_using) を発行した後、その下のコードに到達しないことにも気付きました-なぜですか?

私はpythonのマルチプロセッシングモジュールをいじってみましたが、今のところうまくいきません。

擬似コード コメント付きのスケルトン コードを次に示します:-

ありがとう !

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

rabbitmq - 単一の接続 (pika/rabbitmq) から新しいチャネルを作成する方法は?

私は pika 0.9.13 を使用して RabbitMQ に接続する python コードを書いています。多くの子プロセス (潜在的に数千) を作成しており、各プロセスが RabbitMQ に送信できるようにしたいと考えています。読んでみると、単一の接続を作成し、その接続内にチャネルを作成するのが最善の方法のようです。

これをどのように行うのが最善か誰にもアドバイスできますか?通常、コードは次のようになります:-

どのタイプのアダプターを使用すればよいですか (BlockingConnection ?) ...

前もって感謝します !

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

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

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

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

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

ありがとう!

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

python-2.7 - rabbitmq サーバーを介したパブリッシュとサブスクライブ

あるノードがメッセージを送信し、別のノードがメッセージの受信を待機し始めるシナリオが必要です。

メッセージが送信された後の各ノードはリスナーになり、メッセージを受信すると再びパブリッシャーになります。

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

python-2.7 - Python 2.7 で SIGHUP シグナルが pika で例外を発生させる

それを実行して SIGHUP シグナルを送信すると、ピカ コンシューマーがあり 、例外が発生します。

Consumertest.py

例外: