public ExecutorServices(EPRuntimeSPI spi, Map<String, Executor> workQueue) { this.services = new HashMap<String, ExecutorService>(); for (Map.Entry<String, Executor> entry : workQueue.entrySet()) { Executor queue = entry.getValue(); if (queue.getNumThreads() <= 0) { continue; } LinkedBlockingQueue<Runnable> runnableQueue = new LinkedBlockingQueue<Runnable>(); ExecutorService service = new ThreadPoolExecutor(queue.getNumThreads(), queue.getNumThreads(), 1000, TimeUnit.SECONDS, runnableQueue); services.put(entry.getKey(), service); } try { spi.getContext().bind("EsperIODBAdapter/ExecutorServices", this); } catch (NamingException e) { log.error("Error binding executor service: " + e.getMessage(), e); } }