問題タブ [kombu]
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.
python - Rabbitmq がファイル記述子の制限に達すると、クライアントが無期限にハングする
私のrabbitmqサーバーがファイル記述子の制限に達し、新しい接続を受け入れなくなるという問題が発生した後、キューから消費するクライアントが非常に望ましくない方法で動作することに気付きました.
接続を開こうとすると、エラーをスローせずに無期限にハングしました..
私は現在、Kombu ライブラリを使用しています。問題を再現すると、接続パラメータを微調整しても、接続のインスタンス化が無期限にブロックされるのを防ぐことはできません。タイムアウトはトリガーされず、ハートビートを有効にしても役に立ちません。見るstrace
と、rabbitmq サーバーへの接続を開き、データを永久に待機していることがわかります。
また、Pika ライブラリを使用してみましたが、同じ問題が発生しました。違いstrace
は、接続がポーリングされていることを示していることです。ただし、接続のインスタンス化は依然として無期限にブロックされます。
足りないものはありますか?何か問題が発生した場合に、rabbitmq サーバーへの接続を無言で永遠にハングアップさせることなく開く正しい方法は何ですか?
編集:
ここにいくつかのコードがあります、それはかなりこんにちは世界です..
ピカ:
昆布:
python - Kombu ConsumerMixin クローズ キューによるファンアウト データ受信の防止
ファンアウト交換に接続された Kombu ConsumerMixin キューを閉じて、Consumer がアクティブでないときに Publisher からのデータを蓄積しないようにするにはどうすればよいですか?
Python 2.7 で Kombu 3.0.24 (RabbitMQ を使用) を使用しています。
以下は、2 つのクラスのコードです。これらを汎用クラスにして、ダイレクト キューや RPC のようなクエリ/応答に再利用できるようにしたいと考えています。
問題は、コンシューマを停止して再起動すると、古いデータがコンシューマ キューで待機していることです。これは、コンシューマーを停止するときにキューを削除する必要があるためだと思いますが、その方法がわかりません。ありがとう。
MessageConsumer.py
MessagePublisher.py
これをコーディングするためのより効率的な方法がある場合は、それを提案してください。グーグルで見つけた例のほとんどは古いバージョンの Kombu を使用しているため、3.0.24 での最適な実装を見つけるのは困難です。
python - 昆布からは何も輸入できません
私はここでかなり混乱しています。私は昆布のドキュメントを一言一句たどっています。私は仮想環境内で実行しています。誰かに同様の問題がありましたか?
python - 昆布の生産者とセロリの消費者
kombu プロデューサーが rabbitmq でメッセージをキューに入れ、セロリ ワーカーによって処理されることは可能ですか? セロリの労働者は、昆布生産者のメッセージを理解していないようです.
python - sockjs-cyclone と一緒に kombu Consumer を使用するにはどうすればよいですか?
sockjs-cyclone
メッセージをRabbitMQにプッシュするさまざまなアプリケーションがあり、サーバーがそれらのメッセージを消費してWebSocketクライアントにプッシュしたいと考えています。kombu
RabbitMQ コンシューマ ライブラリとして使用したいのですが、コンシューマをどこに置くべきか、kombu's
コンシューマ インターフェイスのどの部分を使用すればよいかわかりません。
私は、少なくとも次の精神的障害に悩まされています。
SockJSConnection
アクセスできるように、明らかに内部から消費する必要がありますself.sendMessage
- しかし、これらは同期のブロッキング呼び出しであるため、どこからでも
kombu's
Connection.drain_events
orを使用できるとは思いません。SimpleQueue.get
これら 2 つのライブラリを統合する良い方法はありますか?
python - 昆布/セロリのメッセージ
メッセージ、昆布を送受信し、セロリを使用してメッセージを処理する単純なアプリケーションがあります。昆布だけでちゃんとメッセージを受け取れます。私が「こんにちは」を送ると、昆布は「こんにちは」を受け取ります。しかし、タスクを追加すると、kombu が受け取るのはセロリのタスク ID です。
このプロジェクトの私の目的は、メッセージをいつ送受信するかをスケジュールできるようにすることです。したがって、Celery です。
私が知りたいのは、kombu が送信されたメッセージではなくタスク ID を受け取るのはなぜですか? 私は検索して検索しましたが、この問題に関連する結果は見つかりませんでした。私はこのアプリケーションを使用する初心者であり、この問題を解決するための助けをいただければ幸いです。
私のコード:
task.py
send.py
receive.py
私は使っている:
私が送ったもの:
昆布が受け取るもの: