通常のhtml/css/javascriptで完全に記述されたWebアプリケーションと、jQueryを使用した追加のものがあります。また、Web アプリでユーザーから提供された入力に基づいて動作する必要がある Python で書かれたかなり巨大なプログラムもあります。現在、Php からの入力をファイルに書き込み、それを Python で読み取って操作を行っています。この同期を達成するためのより良い方法はありますか? また、一部のユーザーが送信ボタンをクリックするとすぐに、Python プログラムを実行する必要があります。Pythonにこれを待たせるにはどうすればよいですか?
4929 次
2 に答える
3
あなたの同期方法は、通常のファイルに対する深刻な I/O 操作のためにかなりのオーバーヘッドを生み出し、ロックに対処する必要があり、わずかな負荷の増加でもシステム全体のクラッシュを引き起こす可能性があります。
2 つのプロセス間で情報を交換するために一般的に使用される IPC 手法に慣れることをお勧めします。
- Python には、通常のファイルを使用するよりもはるかに信頼性の高いプロセス間の通信に PIPES を使用するのに役立つsubprocessモジュールがあります。PHP にはpopen関数もあり、Python プロセスを呼び出してデータを渡してさらに処理することができます (PIPES 経由)。
- もう 1 つの方法は、2 つのプロセス間でソケット通信をゼロから構築することです。この場合、PHP 部分はソケット クライアントになり、Python 部分はソケット サーバーになります (以前の方法ではさらに作業が必要になります)。
- さらに処理するためにデータをキューに入れるより良い方法を使用することもできます (つまり、通常のファイルよりも優れているということです) 。 Python または PHP から。
範囲外のテクニックもいくつかありますが、IPC を配置するためにこれら 3 つの方法を選択しました。
それらのすべてまたはいくつかを試して、特定のケースで何が最善の方法であるかを分析できます。
于 2012-08-29T11:36:44.823 に答える
-3
アプリがすでにPythonになっている場合、大部分がPHPでウェブサイトのバックエンドを作成するのはなぜですか?
質問に答えるには-http ://wiki.python.org/moin/IntegratingPythonWithOtherLanguages。
しかし、私は、ばかげたphpを削除し、DjangoのようなPythonフレームワークを使用して、それを使用してバックエンドを構築することをお勧めします。そうすれば、Pythonコードを統合するのは、クラス/メソッドをインポートするだけです。
于 2012-08-29T11:24:24.760 に答える