2017-08-05 5 views
1

私は閉鎖された安全なネットワークを持っています。私は実行者に自分のコードを渡してそこで実行したいと思います。コンソール出力(進行状況/情報)が表示されているのを確認できるようにしたい。クライアント機能をリモートで実行する方法は?

私たちは、現在のクライアントコードで引数を取らない関数、サーバー上でそれを実行して出力を戻す関数を持っていたとします。そのようなユースケースのPythonフレームワークはありますか?

+0

David Beazleyの[オリジナルジェネレータチュートリアル](http://dabeaz.com/generators/)(プレゼンテーションスライドを選択)を読む必要があります。第7部に特に注意してください。出力については、第5部で「ファイルのテーリング」について説明します。 –

答えて

0

詳細な回答を得るために十分な詳細を指定していませんでした。例えば、あなたのシステムの規模は何か、それが自動的に拡張されるべきかどうかは、実行者が何人いるかなどです。

しかし、あなたが尋ねたことは、Pyro4がこれを行うことができるはずです。これは、ローカルマシンのようにリモートマシン上のメンバ関数を呼び出すことができます。実行者ノードで小さなサーバー・プロセスを実行する必要があります。

エグゼキュータでsys.stdoutをキャプチャしてジェネレータの結果として出力すると、Pyro4がリモートジェネレータをサポートするため、出力を呼び出し元アプリケーションに簡単にストリームすることができます。エグゼキュータで不必要な遅延が発生しないようにするには、出力をバッファリングすることもできます。

編集:今後のPyro 4.62リリースでは、 'cloudpickle'シリアライザのサポートが導入されています。 Pyro4は、長い間「ディル」シリアライザをサポートしていました。これらの両方を使用すると、関数自体を実際にサーバーに送信できます。つまり、呼び出し可能なオブジェクトを受け入れる(非常に小さな)サーバーを実行したら、何かをに送信して、リモートで実行することができます。

関連する問題