Quartz + Workmanager с Spring в кластерной среде - PullRequest
0 голосов
/ 21 ноября 2011

Мы хотим выполнять задания в кластерной среде WebLogic. Кварц (работает в кластерном режиме) используется для сохранения заданий, а WorkManager используется для создания потоков для выполнения заданий.

Однако первый экземпляр Quartz немедленно блокирует все задания, что не позволяет другому узлу / серверу выполнять параллельное выполнение.

Эта блокировка всех заданий благодаря LocalTaskExecutorThreadPool

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?

1 Ответ

0 голосов
/ 22 ноября 2011

Рассматривали ли вы возможность определения таймера как кластерной одноэлементной службы со стороны WebLogic?Шаги могут отличаться для используемой версии.

...