我们希望在集群WebLogic环境中执行作业。 Quartz(在集群模式下运行)用于保存作业,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在集群环境中并行执行作业?