0

クラスタ化された WebLogic 環境でジョブを実行したいと考えています。Quartz (クラスターモードで実行) はジョブを永続化するために使用され、WorkManager はジョブを実行するためのスレッドを作成するために使用されます。

ただし、最初の Quartz インスタンスはすぐにすべてのジョブをロックし、これにより別のノード/サーバーが並列実行を行うことができなくなります。

このすべてのジョブのロックはLocalTask​​ExecutorThreadPoolのおかげです

public int blockForAvailableThreads() {

     // The present implementation always returns 1, making Quartz (1.6)
     // always schedule any tasks that it feels like scheduling.
     // This could be made smarter for specific TaskExecutors,
     // for example calling <code>getMaximumPoolSize() - getActiveCount()</code>
     // on a <code>java.util.concurrent.ThreadPoolExecutor</code>.
     return 1;
}

このクラスの別の実装を提供する以外に、Weblogic WorkManager を使用してクラスタ化された環境でジョブを並列実行するより良い方法はありますか?

4

1 に答える 1

0

WebLogic 側からクラスター化されたシングルトン サービスとしてタイマーを定義するオプションを検討しましたか? お使いのバージョンによって手順が異なる場合があります。

于 2011-11-22T06:13:16.810 に答える