私は Python を教える Web アプリを開発していますが、解決しなければならない問題の 1 つは、Jython インタープリターから標準出力が補完された瞬間をどのようにキャプチャするかということです。
現在、オブジェクトで出力をキャプチャしStringBuilder
ますが、このアプローチでは、コードの実行が終了したときにのみ出力を取得できます。
PythonInterpreter interp = new PythonInterpreter(null, new PySystemState());
StringWriter out = new StringWriter();
interp.setOut(out);
interp.exec(pyScript);
String outputStr = out.toString();
私が望んでいるのは、実行可能なコードがブラウザーから受信された後、インタープリターがバックグラウンドで実行され続けることです。コードの実行に時間がかかるものの、出力がキャプチャされてデータベースに格納される場合、Ajax コードは出力内容に関する更新を継続的に受け取ることができます。