package org.deephacks.westty.internal.job;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.quartz.SchedulerConfigException;
import org.quartz.spi.ThreadPool;
@Singleton
class JobThreadPool implements ThreadPool {
private final ThreadPoolExecutor executor;
@Inject
public JobThreadPool(ThreadPoolExecutor executor) {
this.executor = executor;
}
@Override
public boolean runInThread(Runnable runnable) {
try {
executor.execute(runnable);
return true;
} catch (RejectedExecutionException e) {
return false;
}
}
@Override
public int blockForAvailableThreads() {
return executor.getCorePoolSize() - executor.getActiveCount();
}
@Override
public void initialize() throws SchedulerConfigException {
}
@Override
public void shutdown(boolean waitForJobsToComplete) {
}
@Override
public int getPoolSize() {
return executor.getPoolSize();
}
@Override
public void setInstanceId(String schedInstId) {
}
@Override
public void setInstanceName(String schedName) {
}
}