2017-07-05 5 views
0

Py4jモジュールを使用してゲートウェイサーバの自動化を実装しています。ユーザが関数を呼び出すたびにゲートウェイサーバを起動する必要があります。私が直面している問題は、バックグラウンドで機能を実行する。ここで コードです:Pythonからバックグラウンドでmvnを実行Popenとスレッド関数

def mvn(): 
logger = open("log.txt", 'w') 
logger.seek(0) 
thread1 = Thread(target=Popen, args=("./runJVM.sh"),kwargs= 
       {"stdout":logger}) 
thread1.daemon = True 
thread1.start() 
# stdout, error = proc.communicate() 
# logger.write(stdout) 
logger.close() 

は、私がここに 1)私はロガーに標準出力kwargsからを指定した場合(ログファイルが出力をチェックする)に直面しています二つの問題があり、それは私にそのstdoutが持っているというエラーがスローされます複数の引数が指定されました。

2)stdoutオプションを指定しないと、スレッドの出力がipython端末に表示されますが、これは私が望んでいないものです。

私が望むのは、バックグラウンドでサーバーを呼び出すことで、他の関数がjavaゲートウェイサーバーにアクセスし、ipythonから使用できるメソッドにアクセスできるようにすることです。

端末から直接実行するときに、mvn関数が正常に動作していると見なすことができます。

ありがとうございました

答えて

0

質問に対する回答が見つかりました。

小さなシェルスクリプトを入力として、出力が表示されないようにstdout paramsをkwargsとして渡すPopenコマンドを実行するスレッドを作成しました。 サーバーが呼び出され、他の機能から使用することができました。

希望があれば

関連する問題