問題タブ [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.

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

python - ZMQ ソフトウェアと言語バインディングの違い

ZMQ ソフトウェア ( http://zeromq.org/intro:get-the-softwareで入手可能) と言語バインディングの違いは何ですか?

言語バインディングをインストールし、私の例は (Python で書かれて) 正常に動作していますが、ZMQ ソフトウェアの用途は何ですか?

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

python - 並行リクエストで分散作業から正しい情報を送り返す

私は Flask+nginx+gunicorn アプリケーションを構築しました。このアプリケーションは、ペア zmq ソケットを介してサービスと通信し、次にリクエストを分散ワーカーに送信して結果を返します。

ただし、正しい情報がユーザーに返されていることを確認するために多くのチェックを行っていません。これは、ユーザー A とユーザー B がほぼ同時にデータを要求した場合、結果が間違ったユーザーのものになる可能性があることを意味します。

リクエストで何らかのコンテキスト(ユーザー名など)を送信する必要があると思います。結果が戻ってきたら、それをキューに入れ、ブラウザのリクエストがコンテキストに基づいて正しい結果を選択するようにします。

データが正当な所有者に送信されていることを確認するにはどうすればよいでしょうか?

コードは次のようになります。

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

python - PyZMQ Gevent Websocket 接続エラー

Python zmqを使用してpub/subパターンを試しています。クライアント側で奇妙な問題に直面しています。クライアント側では、pyzmq、gevent-websocket、および bottle を wsgi サーバーとして使用しています。1 つのクライアントに対しては完全に機能しますが、他のクライアントは最初のクライアントが切断されるのを待っています。1 つのクライアントで作業しているときに、切断して再接続すると、再接続するたびにメッセージが 2 回以上表示されます。

私が見たすべての例では、メッセージを受信するために while ループを使用しています。私はこの while ループに慣れておらず、socket.on_message のようなコールバック関数を探しています。実験目的で、このような while ループを使用せずに同じ node.js バージョンを作成しましたが、プロジェクトではノードが除外されました。ノードのバージョンは次のとおりです。

ここでは while ループを使用しません。

Pythonコードで何が間違っていますか?

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

python - ZeroMQ ROUTER ソケットがメッセージを REP ソケットに送信できない

ZeroMQ を使用したルーターを使用して、単純な要求と応答のアーキテクチャを実装しました。これは、PyZMQ バージョン 2.1.11で正しく機能します。残念ながら、PyZMQ バージョン 14.0.0でテストすると、送信者 (REQ) はルーターに送信でき、ルーターはメッセージを受信して​​受信者 (REP) に送信できますが、受信者はメッセージを受信しません! PyZMQ をバージョン 2.1.11 から 14.0.0 にアップグレードしたときに、この問題に遭遇しました。

REQ <-> ROUTER <-> REP

これが私のコードです:

送信者.py

router.py

受信機.py

このアーキテクチャを使用する場合:

ディーラーとのルーティング

DEALER複数の受信者にルーティングしません。DEALERメッセージを受信者に送信するためにラウンドロビン方式のみを使用します。ROUTERの代わりに を使用できる場合DEALER、メッセージは特定の受信者にルーティングされ、それらの間でラウンドロビンが実行されます。

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

python - Esky および zmq モジュールを使用したアプリのフリーズ

Esky と cx_freeze を使用してアプリをフリーズしようとしています。

私の setup.py は次のようになります。

ただし、pyzmq がフリーズに適切に含まれていないようです。

私は得続けます:

この問題を解決する方法についてのアイデアはありますか?

EDIT2::わかりました、それを解決した答えがあります>> https://bitbucket.org/anthony_tuininga/cx_freeze/issue/55/failed-with-pyzmq-1401-py33-win-amd64egg

編集: 示唆されているように、cython バックエンドを使用することを余儀なくされており、別のエラー スタック トレースがあります:

ネイティブの読み込みに問題があると思いますlibzmq.dll(ただし、zmq.libzmq.pyd結果のdistフォルダーにいくつかあります)、誰かがこれを解決しましたか?

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

c++ - zmq人工呼吸器/ワーカー/シンクパラダイムがサブプロセスで機能しない

ZMQ ガイドで説明されている人工呼吸器/ワーカー/シンクのパラダイムを再現しようとしています。ZMQ の例で説明したのと同じ Python Ventilator、同じ C++ ワーカー、および同じ Python Sink があります。1 つのメイン Python スクリプトから人工呼吸器、ワーカー、およびシンクを起動したいので、人工呼吸器とシンクの周りに「クラス」ラッパーを作成し、これらのクラスの両方で Python モジュール「multiprocessing.Process」をサブクラス化しました。C++ はバイナリなので、Python の subprocess.Popen 呼び出しで起動します。

このすべてを開始する順序は次のとおりです。

私が見つけたのは、このようにコンポーネントを起動すると、システムを通過するデータがないということです。ただし、独自のシェルで C++ バイナリを起動し、メインの python スクリプトから sinkObj と ventObj のみを起動すると、正常に動作します。

これがZMQの質問というよりもPythonの質問である場合は、事前に謝罪しますが、Pythonのサブプロセスでこのような問題に遭遇したことはありません. サブプロセスの代わりに os.system() を使用してみました...でも同じ問題です。私はこのウェブサイトにすべてのコードを載せました: https://github.com/kkarrancsu/zmqtest 誰かがそれを試してみたいと思っているなら. そのgitには、ファイルが何であるかを示すreadmeがあります。

なぜこれが起こっているのかについてのアイデアはありますか?

- - - - - - - - - - - - - アップデート - - - - - - - - - -

C バイナリを起動するだけのシェル スクリプトを作成し、そのシェル スクリプトを os.system('run_the_shell_script') で呼び出すと、動作することがわかりました。したがって、これは、subprocess.Popen(...) の使用方法に問題があることを意味しますが、問題が何であるかを特定できないようです。shell=True フラグを付けて試してみましたが、それでもハングします...