2017-03-21 10 views
-1

次のコードは、Pythonスクリプトを呼び出し、出力を得るために素晴らしい作品中:コンバイン生成されたプロセス出力

s = spawn 'python', ['-u', 'foo.py'] 
s.stdout.on 'data', (data) -> msg.send data.toString() 
s.stderr.on 'data', (data) -> msg.send data.toString() 

foo.pyが(それが実行されると、それは更新を返す)、多くの異なる応答を返します。例えば

def function1(): 
    print "Function 1 complete" 

def function2(): 
    print "Function 2 complete" 

function1() 
function2() 

Hubotは、一貫した順序でそれらの結果を表示しません。 msg.sendが複数回呼び出された場合に起こりうることは分かっています。

私はfoo.pyを別の振る舞いに書き直すことができますが、他のプロセスはfoo.pyに依存しており、その動作を変更することはできません。

msg.sendを一度呼び出すだけで、プロセス出力の順序が保持されることを期待して、応答を収集して単一のmsg.sendを送信することがプロセスによってどのようになるのだろうかと思っていました。

答えて

関連する問題