1

Javaプロセスから外部プロセス/スクリプト/CLIコマンドを呼び出す必要があります。
これらの呼び出しは非常に多く、実行されたプロセス/スクリプトの結果を返すものもあれば、それを実行するだけのものもあるので、次のことを考えていました。

  1. Javaを中心に構築するための標準的な設計があり 、ProcessBuilder コード呼び出しに散らばらないようにしています。ProcessBuilder
  2. どのような最適化を行うことができますか?たとえば final String、コードのようにそれらを保持するのではなく、すべてのcliコマンドをファイルから読み取ることは理にかなっていますか?
4

1 に答える 1

2

あなたの質問は正確な答えを書くために少し曖昧ですが、私はいくつかの提案があります:

  • シェルは、コマンド(パイプ、待機など)をリンクし、ロジックを少しコーディングするように設計されています。シェルは解釈され、更新は非常に簡単ですが、シンプルに保つ必要があります。それらはシステムの基本的な部分である可能性があります。
  • launchプロセスを開始し、stdoutとstderrを(2つのスレッドで)キャプチャして、ドライバーのログを書き込む独自のメソッドを記述します。
  • 宣言的に指定するXMLファイルを設計します。
    • プロセスパス、それらの引数(静的なもの)
    • ジョブ間の並列処理と同期
  • XMLプロセスモデルを反映するようにJavaでモデルを記述します(JAXBが解決策になる場合があります)
  • 一連のジョブを待機する機能をモデルに追加します
  • モデルに修飾子を追加して、引数の値を動的に変更します

私があなたの問題を分類しようとすると、私は主に制御フローで考えます。

大きな問題を解決するには、並列処理を使用できます。複数のプロセスを同時に起動し、すべてのプロセスが終了するのを待ちます。これは、ランデブーフェーズまたは参加フェーズです。おそらく、別のネットワークコンピュータに対してリモートコマンドを起動することができます。

XMLファイルに並列処理を指定する方法の良い例は、ANTビルドファイルです

<parallel>
  <wlrun ... >
  <sequential>
    <sleep seconds="30"/>
    <junit fork="true" forkmode="once" ... >
    <wlstop/>
  </sequential>
</parallel>

プログラミングせずにANTを使用して問題を解決することをお勧めしますか?

紙とペンを使って、希望する処刑の絵が役立つかもしれません... ;-)

いくつかのグラフィカルアプリケーションは、制御フローの論理図を描くのに役立つ場合があります。完了したら、ここに公開してください。より正確な回答が得られることを願っています...

于 2013-03-06T21:24:48.020 に答える