@Override public String getName() { return config.getName(); }
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; }
@Override protected SharedResourceConfig createConfig() { final int coreSize = getSize(); final int maxSize = getMaxSize() != null ? getMaxSize() : -1; final int keepAliveTime = getKeepAliveTime() != null ? getKeepAliveTime() : -1; return new ThreadPoolConfig(getName(), isIgnored(), coreSize, maxSize, keepAliveTime); }
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; }
@Override protected SharedResourceConfig createConfig() { final int coreSize = getSize(); final int maxSize = getMaxSize() != null ? getMaxSize() : -1; final int keepAliveTime = getKeepAliveTime() != null ? getKeepAliveTime() : -1; return new ThreadPoolConfig(getName(), isIgnored(), coreSize, maxSize, keepAliveTime); }
@Override public String getName() { return config.getName(); }
@Override public Thread newThread(Runnable r) { final Thread result = new Thread(r, config.getName() + "-" + threadNumber.getAndIncrement()); result.setDaemon(true); return result; } });
@Override public Thread newThread(Runnable r) { final Thread result = new Thread(r, config.getName() + "-" + threadNumber.getAndIncrement()); result.setDaemon(true); return result; } });
@Override public void shutdown() { logger.info("Shutting down thread pool {}", config.getName()); try { logger.debug("Waiting for the executor service to gracefully shutdown"); executorService.shutdown(); executorService.awaitTermination(20, TimeUnit.SECONDS); logger.info("Executor service terminated"); } catch (final InterruptedException e) { logger.warn("Thread pool failed to gracefully shutdown within 20 seconds. Forcing shtudown"); } executorService = null; }
@Override public void shutdown() { logger.info("Shutting down thread pool {}", config.getName()); try { logger.debug("Waiting for the executor service to gracefully shutdown"); executorService.shutdown(); executorService.awaitTermination(20, TimeUnit.SECONDS); logger.info("Executor service terminated"); } catch (final InterruptedException e) { logger.warn("Thread pool failed to gracefully shutdown within 20 seconds. Forcing shtudown"); } executorService = null; }