2016-07-03 4 views
0

私はPHPからJavaクラスを実行しています。PHPを実行するにはshell_exec Javaクラスを並列に実行するには?

テスト目的のために、私はPHPページを持っています。そのページに移動すると、5秒待って何かを出力するjavaプログラムが実行されます。

別のブラウザウィンドウから同時にページに移動すると、最初のウィンドウにメッセージが出力され、2番目のウィンドウには10秒、15番目には15秒かかると思われます。

私が望むのは、Javaプロセスを並列で実行することです。その結果、すべてのウィンドウがほぼ同時に結果を出力しますが、どのようにこれを行うのかわかりません。私は簡単な解決策があるように感じますが、私はインターネット上のどこにもそれを見つけることができません。

私はまた、nohup&を実行してバックグラウンドで実行しようとしましたが、同じことが起こります。

答えて

0

並列実行を妨げるいくつかのロック問題があるようです。 PHPセッションモジュールを使用していますか?デフォルトセッション記憶モジュールは、セッションデータを、ページの実行中にロックされたファイルに格納する。同じブラウザでページを2回ロードすると、2番目のリクエストは、最初のリクエストが終了するまでセッションモジュールによってブロックされます。

別のブラウザで2番目のリクエストを実行して問題が解決したかどうかを確認します。その場合、セッションにそれ以上のデータを格納する必要がない場合は、session_write_close()に電話してロックを解除することができます。

+0

ありがとうございます。これは確かに問題でした。これは、さまざまなブラウザから動作します。このトピックに関する詳細や、Web開発/ PHPの知識を増やすのに役立つ一般的なリソースを知ることができる、いくつかのリソースをお勧めしますか? – stinseid

関連する問題