2

私たちのビジネスケースでは、メッセージBeanからシェルスクリプトを呼び出す必要があります。明らかな移植性の問題と標準への準拠以外に、Beanからシェルスクリプトを呼び出す際の問題は何ですか?技術的に言えば、コンテナのWebLogicで可能になりますが、それは確かに悪い習慣のようです。良い代替案は何でしょうか?この場合は同期呼び出しです。

4

3 に答える 3

2

明らかな移植性の問題と標準への準拠以外に、Beanからシェルスクリプトを呼び出す際の問題は何ですか?

あなたは最も重要なものをカバーしました。

私が考えることができる他の唯一のものは次のとおりです。

  • 「混合」ソリューションを維持するためのエンジニアリングの問題
  • 潜在的なパフォーマンスの問題。たとえば、Javaでコーディングし、(通常は)メインJVMで実行すると、タスクを大幅に高速化できる場合です。

技術的に言えば、コンテナのWebLogicで可能になりますが、それは確かに悪い習慣のようです。

悪い習慣は優雅さと同一視されるべきではありません。良い/悪い習慣は、いくつかの客観的な基準に従って測定可能な影響を与える/もたらすであろうものについてです...あなたがそれらを測定することができれば。

良い代替案は何でしょうか?この場合は同期呼び出しです。

一般的な代替手段は、Javaでタスクをコーディングすることです。awk/のsed場合はそれができるはずです。外部プロセスを探すために使用している場合、psおそらく純粋なJavaでタスクを実行することはできません。つまり、現在のアプローチが最適です。

于 2012-09-04T23:23:25.357 に答える
0

大丈夫だと思います、私たちはいつもそれを使っています。Beanは同期呼び出しを待つのに忙しいので、ロードに十分な空きBeanがない場合、キューは停止します。

于 2012-09-04T21:45:09.220 に答える
0

@スティーブンC:いい反応。

問題と対応は、リソース管理に対する私の考えを導きます。外部プロセスがアクセスするリソースを検討してください。

リソースが次の場合:

  • 厳密に「計算」(awk / sed over stdin / stdout)であり、これは既存のツール(UNIXの精神)を活用して迅速なソリューションを引き出すための不合理な方法ではありませんが、移植性はありません。私がプロトタイピングをしている場合、または開発スケジュールが速い場合は、これを考慮し、より複雑な問題についてのみこれに傾倒します。

  • 次に、ファイル、ネットワークなどを、スケーラブルなJavaEE環境でこれらのリソースをどのように管理するかを検討する必要があります。

  • プロセスは、プロセス管理の目的で、Java / Java EEでは利用できません。/processesの場合のようにps、O/Sに目を向ける必要があります。

  • 作業を並列化するためのプロセス/スレッド-並列ワークフローを管理するように誘惑されないでください。JavaEEにはその目的のためのスケーラブルなAPIがあります。

于 2012-09-04T23:48:51.090 に答える