private ScheduledThreadPoolExecutor createExecutorService(final ThreadPoolConfig config) { logger.info("Starting scheduled thread pool \"{}\" with core size of {} threads", config.getName(), config.getCoreSize()); final ScheduledThreadPoolExecutor result = new ScheduledThreadPoolExecutor(config.getCoreSize()); result.setThreadFactory(new ThreadFactory() { private final AtomicInteger threadNumber = new AtomicInteger(1); @Override public Thread newThread(Runnable r) { final Thread result = new Thread(r, config.getName() + "-" + threadNumber.getAndIncrement()); result.setDaemon(true); return result; } }); if (suspended) { result.setCorePoolSize(0); result.setMaximumPoolSize(1); } else { if (config.getMaxSize() != -1) { result.setMaximumPoolSize(config.getMaxSize()); } } if (config.getKeepAliveTime() != -1) { result.setKeepAliveTime(config.getKeepAliveTime(), TimeUnit.SECONDS); } if (suspended) { result.shutdown(); } return result; }
private ScheduledThreadPoolExecutor createExecutorService(final ThreadPoolConfig config) { logger.info("Starting scheduled thread pool \"{}\" with core size of {} threads", config.getName(), config.getCoreSize()); final ScheduledThreadPoolExecutor result = new ScheduledThreadPoolExecutor(config.getCoreSize()); result.setThreadFactory(new ThreadFactory() { private final AtomicInteger threadNumber = new AtomicInteger(1); @Override public Thread newThread(Runnable r) { final Thread result = new Thread(r, config.getName() + "-" + threadNumber.getAndIncrement()); result.setDaemon(true); return result; } }); if (suspended) { result.setCorePoolSize(0); result.setMaximumPoolSize(1); } else { if (config.getMaxSize() != -1) { result.setMaximumPoolSize(config.getMaxSize()); } } if (config.getKeepAliveTime() != -1) { result.setKeepAliveTime(config.getKeepAliveTime(), TimeUnit.SECONDS); } if (suspended) { result.shutdown(); } return result; }