問題タブ [pyro]

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 に答える
479 参照

django - 分岐前の RPC サーバーを使用して、Django Web アプリケーションへの計算集約型の要求を処理する

nginx の背後にある Gunicorn をリバース プロキシとして使用して、Django ベースの Web サービスを実行しています。

私の Web サービスは、MATLAB の外部インスタンスを使用して計算を実行する Django ビューを提供します。MATLAB の起動には数秒かかるため、非常に単純な MATLAB 計算のみが発生する要求であっても、応答するのにこの時間を必要とします。

さらに、私のコードでは MATLAB サンドボックス化が行われているため、Web サーバー プロセスに対して同時に実行される MATLAB インスタンスは 1 つだけであることが重要です。(したがって、現在、分岐前の Web サーバーを実装するが、マルチスレッドを使用しない Gunicorn 同期ワーカー モデルを使用しています。)

ユーザー エクスペリエンスを向上させるために、いくつか (たとえば 3 ~ 5 個) の "準備ができている" MATLAB インスタンスを実行し続け、要求が受信されたときにそれらを使用することで、MATLAB 起動の待ち時間をなくしたいと考えています。要求が処理された後、MATLAB プロセスは終了し、新しいリクエストがすぐに開始され、別のリクエストに備えることができます。

私はこれを行うための2つの方法を評価してきました:

  1. Gunicorn 同期ワーカー モデルを引き続き使用し、Web サーバー プロセスごとに 1 つの MATLAB インスタンスを保持します。

    これに関する問題は、着信要求が Web サーバーのワーカー プロセスにラウンド ロビン方式で分散されないことです。したがって、計算集約型のすべての要求が同じプロセスにヒットし、その単一の MATLAB インスタンスを必要な速度で再起動できないため、ユーザーは依然として待機する必要がある場合があります。

  2. MATLAB の計算をバックエンド サーバーに外注します。バックエンド サーバーは実際の作業を行い、RPC を介して Web サーバー プロセスによって照会されます。

    私の考えでは、多数の RPC サーバー プロセスが実行されており、それぞれが実行中の MATLAB プロセスをホストしています。要求が処理された後、MATLAB プロセスが再起動されます。RPC サーバー プロセスはラウンド ロビンでクエリされるため、ユーザーは MATLAB の開始を待つ必要はありません (全体的に要求が多すぎる場合を除きますが、それは避けられません)。

最初のアプローチで説明した問題のため、RPC サーバー (アプローチ 2) が私の問題に対するより良い解決策になると思います。

Python 用の RPC ソリューション (特に Pyro と RPyC) をいくつか調べましたが、RPC サーバーにフォーク前のサーバー モデルを使用する実装を見つけることができません。サンドボックスがあるため、マルチスレッド化は不可能であり、接続が受け入れられた後にのみサーバーが分岐する場合は、その後も MATLAB を起動する必要があり、アイデア全体が妨げられることを覚えておいてください。

私の問題に対するより良い解決策を知っている人はいますか? それとも、RPC サーバーが実際に最適なソリューションでしょうか? しかし、その場合、事前にフォークする RPC サーバー (= いくつかのプロセスをフォークし、それらすべてを同じソケットの accept() でスピンさせる) か、少なくとも事前に簡単に変更できる (モンキーパッチ?) RPC フレームワークが必要になります。 -フォーク。

前もって感謝します。

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

python - Pyro4 を使用してシステム情報を取得する

自動テストで Pyro4 を使用しようとしましたが、今では Pyro4 の機能について混乱しています。Pyro4 オブジェクトでシステム情報を取得する方法はありましたか?

私の考えでは、システム情報を取得できる Pyro オブジェクトを公開し、リモート マシンはこのオブジェクトを使用してシステム情報を表示できます。しかし、私のコードでは、リモート マシンは常にサーバー情報を表示します。私は Pyro4 を誤解または誤用していると思います

このばかげた質問で申し訳ありません。私は Pyro4 の初心者です。以下は私のサンプルコードです。サーバーは Pyro オブジェクトを公開します

および Pyro オブジェクトを使用するクライアント

psクライアント側でOS情報を取得できることはわかっていますが、クライアントがこれを行う代わりに、Pyroオブジェクトを使用して情報を取得したいと考えています。

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

python - Pyro4 がコンピュータ間の接続に失敗する

私は Python と Pyro4 にかなり慣れていないので、それらをどのように扱うかを理解しようとしています。私の問題は、以下のサーバーとクライアントのコードを考えると、2 台のコンピューターが互いに通信できないように見えることです。どちらも Ubuntu 12.04 を実行しており、同じローカル ネットワーク上にあり、互いに ping (および ssh) できます。サーバー IP は 192.168.0.18 で、クライアントは 192.168.0.22 です。

これが私が遊んだ(非常に基本的な)サーバーコードです(サーバー):

これが実行され、以下が出力されます。

そしてクライアント上で:

そしてしばらくすると、次のように返されます。

また、デーモンを設定する代わりに Pyro4.config.HOST = '192.168.0.18' を設定しようとしましたが、うまくいきませんでした。

これが機能しない理由、または私が間違っていることはありますか?

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

python - Pyro4は、3つ以上のクライアントが1つのURIにアクセスすることを許可しません

pygameを使用してPythonでターン制ストラテジーゲームを作成しています。ソケットを書くのは非常に難しいと思ったので、ゲームボードの状態を共有するためにPyroに頼りました。ただし、Pyroは一度に2つ以上の接続をサポートできないようです。

ローカルホストでネームサーバーを実行しています

テストケース'サーバー':

およびクライアント:

最初の2つのクライアントからの出力:

繰り返します

3番目のクライアントからの出力:

とハングします。

4番目、5番目(そしておそらくそれ以降)のクライアントからの出力:

この段階で、ネームサーバーに^ Cを指定し、クライアント3、4、...にこの出力を指定してクラッシュします。

その間、クライアント1と2はビジー状態のままです。

ただし、アクティブなクライアントの1つを切断すると、ハングしたクライアントの1つが動作を開始します。

「exportPYRO_SERVERTYPE=multiplex」を使用してスレッドから切り替えようとしましたが、動作は変わりませんでした。最大接続数の設定は200のようです。1000に設定しても問題は解決しませんでした。

Pyroにはスケーラビリティがないことを読みましたが、少なくとも10の接続に到達できることは確かですか?

一度に3つ以上のクライアントをPyro4オブジェクトに接続するにはどうすればよいですか?

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

wordpress - 同じドメインの iFrame の SEO を強化する最善の方法は何ですか?

私の会社の Web サイトは PyroCMS のインストールを介して実行されていますが、これは構築に非常に費用がかかりましたが、維持するのはまったく不可能でした。また、タグを使用しないプラットフォーム上に構築されているため、当ブログの SEO は非常に貧弱です。

Wordpress でブログのレプリカを作成し、ブログ ページの Pyro インストールに iframe 化します。どちらも同じサーバーでホストされており、wordpress のインストールは Pyro のインストール内にあります。

私の質問は次のとおりです: iFrame で SEO を強化するには、何をする必要がありますか? 私が考えていなかったこれを行うためのより良い方法はありますか?基本的には、良い記事がいくつか書かれているので、トピックのニッチ性をページランクに上げたいと思っています.

考え?ありがとう。

~ジョー

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

python-3.x - python2をpython3に接続するPyro4

次の設定があります:python2.7で実行されているPyroネームサーバー、python2.7で実行されているPyroデーモン、および(理想的には)python3.3を実行しているPyroクライアント。

python2.7で実行されているクライアントを使用してサーバーに接続すると、すべてが正常に機能します。クライアントにpython3.3を使用すると、プロキシ接続を問題なく作成できますが、次のようになります。

リモートメソッドを使用しようとするとき。パイロドキュメントは、python2.7インスタンスをpython3.3と相互接続できるはずだと示唆しているようですが、そうではありませんか?

Pythonの2.7インスタンスと3.3インスタンスの両方がPyro4バージョン4.16を使用しています

編集:これが私のために機能していないいくつかの実際のコードです:

(python2 nsで開始)

python2.7 virtualenvの場合:

およびpython3.3virtualenvの場合:

上記の正確な例外が発生します。

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

mysql - sqlalchemy と pyro によるセッション管理

私は実際にMySQLとPyroでSQLAlchemyを使用してサーバープログラムを作成しています。多くのクライアントがこのサーバーに接続してリクエストを行います。プログラムはデータベース MySQL からの情報のみを提供し、時にはいくつかの計算を行います。

クライアントごとにセッションを作成するのと、すべてのクライアントに同じセッションを使用するのとではどちらがよいですか?

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

python - セロリvsパイロ:パイロはセロリの代替品ですか?

私はセロリについて学ぼうとしていますが、セロリとパイロが同じことを達成しようとしているのではないかと思っていました。

セロリができること、パイロができないこと、またはその逆があるかどうか誰かに教えてもらえますか?

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

python - Pyroをgeventで使用するにはどうすればよいですか?

Pyroとgeventを一緒に使用することは可能ですか?どうすればこれを行うことができますか?

Pyroは、おそらくepollなどを使用する独自のイベントループを作成したいと考えています。この2つを調整するのに問題があります。

助けていただければ幸いです。

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

html - PyroCMS でユーザー モジュールから画像を表示するには?

次のコードを使用して、ユーザー モジュールに保存されている画像の URL を取得しようとしています。

{{ profile_picture }}は画像であり、ページ上に「配列」として表示されるすべてのものです。他の変数は希望どおりに表示されますが、画像が問題を引き起こしています。画像はファイルモジュールに適切に保存されていますが、ページに表示できないようです。

どんな助けでもいただければ幸いです