All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.quartz.simpl.ZeroSizeThreadPool Maven / Gradle / Ivy

There is a newer version: 2.5.0
Show newest version
/* 
 * Copyright 2001-2009 Terracotta, Inc. 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
 * use this file except in compliance with the License. You may obtain a copy 
 * of the License at 
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 *   
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
 * License for the specific language governing permissions and limitations 
 * under the License.
 * 
 */

package org.quartz.simpl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.SchedulerConfigException;
import org.quartz.spi.ThreadPool;

/**
 * 

* This is class is a simple implementation of a zero size thread pool, based on the * {@link org.quartz.spi.ThreadPool} interface. *

* *

* The pool has zero Threads and does not grow or shrink based on demand. * Which means it is obviously not useful for most scenarios. When it may be useful * is to prevent creating any worker threads at all - which may be desirable for * the sole purpose of preserving system resources in the case where the scheduler * instance only exists in order to schedule jobs, but which will never execute * jobs (e.g. will never have start() called on it). *

* *

*

* * @author Wayne Fay */ public class ZeroSizeThreadPool implements ThreadPool { /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Data members. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ private final Logger log = LoggerFactory.getLogger(getClass()); /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Constructors. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /** *

* Create a new ZeroSizeThreadPool. *

*/ public ZeroSizeThreadPool() { } /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ public Logger getLog() { return log; } public int getPoolSize() { return 0; } public void initialize() throws SchedulerConfigException { } public void shutdown() { shutdown(true); } public void shutdown(boolean waitForJobsToComplete) { getLog().debug("shutdown complete"); } public boolean runInThread(Runnable runnable) { throw new UnsupportedOperationException("This ThreadPool should not be used on Scheduler instances that are start()ed."); } public int blockForAvailableThreads() { throw new UnsupportedOperationException("This ThreadPool should not be used on Scheduler instances that are start()ed."); } public void setInstanceId(String schedInstId) { } public void setInstanceName(String schedName) { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy