メッセージをリッスンし、オンデマンドでプロセスを分岐できる Activiti コントローラーを作成しています。
私はJavaを使用しようとしています:
Process p = Runtime.getRuntime().exec("java -jar ...");
通常のJava実行可能jarを実行すると問題なく動作しますが、エクスポートされたActivitiプロジェクトを実行する場合、Activitiコントローラーが完了するまで呼び出しがハングするようです。
コントローラ:
while(1){
print "listening"
recv message
print "executing"
exec process
print "done"
}
メッセージが受信されると、ループの先頭に戻ることを含め、すべての印刷物が表示されます。しかし、アプリケーションを強制的に閉じるか、while ループを完全に削除するまで、プロセスは実際には実行されません。
コントローラー コードが完了すると、コマンド ラインで Activiti jar 全体が完了していることを確認できます。
** これは単に出力を保持して最後に表示するだけではありません。これは、ワークフローが Activiti を監視できる他のサービスにメッセージを渡すためです。
** 代わりに runnable と thread を使用して、exec を別のクラスに配置しようとしましたが、同じ動作が見られます。