問題タブ [pyzmq]
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.
zeromq - ZeroMQ REQ/REP サーバーのエラー処理
ZeroMQ 担当者/要件を使用しようとしていますが、サーバー側のエラーを処理する方法がわかりません。ここからコードを見てください:
私の問題は、クライアントが socket.send() を呼び出してからハングまたはクラッシュした場合にどうなるかです。サーバーが socket.send() または socket.recv() で永遠に動かなくなるのではないでしょうか?
TCP ソケットの問題ではないことに注意してください。TCP ソケットを使用すると、簡単に接続を切断できます。ZMQ を使用すると、接続が暗黙的に管理され、「セッション」または「接続」を中断して最初からやり直すことができるかどうかわかりません。
python - zeromq: なぜディーラーは 1 つのメッセージを送信し、1 つのクライアントから受信するのですか?
コードの動作を理解しようとしています。zeromq を使用して、「ping」を送信し、「pong」応答を待機するサーバーを作成しています。私が見ているのは、ping を送信すると、1 つのクライアントだけがそれを受信するということです。このコードを実行して初めて「ping」を送信すると、次のメッセージが表示されます。
もう一度実行すると、
何故ですか?「ping」を 1 回送信し、pong を 2 回受信したいと考えています。
コードは次のとおりです。
編集
これを機能させる方法を見つけました。私は本当にこれが嫌いなので、別の方法があることを本当に願っています! そのため、ディーラーがラウンドロビン方式でクライアントに送信しているように見えます。そのため、ping を機能させるには、すべてのクライアントに送信する必要がありました。どうやって?私はモニターソケットを購読し、接続されているすべてのクライアントをリストに追加しました。ping を実行するたびに、すべてのクライアントに ping を実行します。見る:
python - PyZMQ PUSH ソケットが send() でブロックされない
ZMQ ソケットのドキュメントのZMQ_PUSH
セクションでは、少なくとも 1 つのノードが使用可能になるまで、ダウンストリーム ノードを持たない PUSH ソケットの呼び出しをブロックする必要があると述べています。send()
ただし、次のコードを実行しても でブロックされないようですsend()
。また、一致する PULL ソケットを実行してメッセージを受け取るまで、プロセスは終了しません。
出力:
何か不足していますか、それとも PyZmq のバグですか?
バージョン情報: Windows 7、Python 2.7、PyZMQ 14.0.1
EDIT
いくつかいじった後、 に置き換えるsender.connect('tcp://localhost:5555)
とsender.bind('tcp://127.0.0.1:5555)
、期待どおりに動作するようです。ただし、それがどのように関連しているかはわかりません。
sockets - zmq send with NOBLOCK raise リソースが一時的に利用できません
このコードは、NOBLOCK で呼び出したときにリソースを一時的に使用不可にします。
docsを読んだ後、これに関するヒントは見つかりませんでした。しかし、recv のドキュメントでこのフラグが説明されています。
python - CPU使用率が高くならないようにするには?
個別に実行される を作成zmq_forwarder.py
し、アプリからのメッセージを sockJS 接続に渡します。現在、フラスコ アプリが zmq 経由で sockJS からメッセージを受信する方法に取り組んでいます。私の内容を貼り付けていzmq_forwarder.py
ます。ZMQ は初めてで、実行するたびに 100% の CPU 負荷を使用する理由がわかりません。
ご覧のとおり、4 つのソケットをセットアップしました。アプリはポート 5561 に接続してデータを zmq にプッシュし、ポート 5562 に接続して zmq から受信します (ただし、zmq によって送信されたメッセージをリッスンするように実際に設定する方法をまだ考えています)。一方、sockjs はポート 5564 で zmq からデータを受信し、ポート 5563 でデータを送信します。
zmq.DONTWAIT
メッセージの受信を非同期でノンブロッキングにすることを読んだので、追加しました。
CPU をオーバーロードしないようにコードを改善する方法はありますか? 目標は、zmq を使用してフラスコ アプリと websocket の間でメッセージをやり取りできるようにすることです。
zeromq - ソケットの非同期ペアに最適な ZeroMQ パターンはどれですか?
サーバー (Amazon で実行) とそれに接続する単一のクライアントがあります。接続が確立されると、クライアントとサーバーは排他的に相互に通信し、メッセージを送信します。
例えば
クライアントが接続を失い、しばらくしてから再接続し、メッセージの送信を再開する場合があります。また、メッセージの順序の意味は何ですか? #2 は #1 の前に到着できますか?
python - Python で zmq をインポートできない (インストールの問題)
Macbook (OSX 10.9.1) に pyzmq をインストールできないようです
最初の呼び出しは実行することでした:
libzmq が見つからないというエラーが発生し、バンドルされたバージョンをコンパイルしようとしたようです。
これはうまくいきませんでした:
そのため、インストール プロセスのエラーは、libzmq がないと解釈しました。https://github.com/zeromq/pyzmq/wiki/Building-and-Installing-PyZMQの指示に従って、アンインストールして試しました:
に続く:
エラーが発生し続けます:
私が何をしても。