public WorkerPoolStatisticsMetadata getStats() { WorkerPoolStatisticsMetadata stats = new WorkerPoolStatisticsMetadata(); stats.setName(poolName); stats.setQueued(queue.size()); stats.setHighestQueued(highestQueueSize); stats.setActiveThreads(getActiveCount()); stats.setMaxThreads(this.maximumPoolSize); stats.setTotalSubmitted(getSubmittedCount()); stats.setHighestActiveThreads(getLargestPoolSize()); stats.setTotalCompleted(getCompletedCount()); return stats; }
public ModelNode wrap(WorkerPoolStatisticsMetadata stats, ModelNode node) { if (stats == null) return null; node.get(TYPE).set(ModelType.OBJECT); node.get(ACTIVE_THREADS).set(stats.getActiveThreads()); node.get(HIGHEST_ACTIVE_THREADS).set(stats.getHighestActiveThreads()); node.get(TOTAL_COMPLETED).set(stats.getTotalCompleted()); node.get(TOTAL_SUBMITTED).set(stats.getTotalSubmitted()); node.get(QUEUE_NAME).set(stats.getQueueName()); node.get(QUEUED).set(stats.getQueued()); node.get(HIGHEST_QUEUED).set(stats.getHighestQueued()); node.get(MAX_THREADS).set(stats.getMaxThreads()); wrapDomain(stats, node); return node; }
@Test public void testQueuing() throws Exception { final long SINGLE_WAIT = 50; final int WORK_ITEMS = 10; final int MAX_THREADS = 5; pool = new ThreadReuseExecutor("test", MAX_THREADS); //$NON-NLS-1$ for(int i=0; i<WORK_ITEMS; i++) { pool.execute(new FakeWorkItem(SINGLE_WAIT)); } pool.shutdown(); pool.awaitTermination(1000, TimeUnit.MILLISECONDS); assertTrue(pool.isTerminated()); WorkerPoolStatisticsMetadata stats = pool.getStats(); assertEquals(10, stats.getTotalCompleted()); assertEquals("Expected threads to be maxed out", MAX_THREADS, stats.getHighestActiveThreads()); //$NON-NLS-1$ }
@Test public void testThreadReuse() throws Exception { final long SINGLE_WAIT = 50; final long NUM_THREADS = 5; pool = new ThreadReuseExecutor("test", 5); //$NON-NLS-1$ for(int i=0; i<NUM_THREADS; i++) { pool.execute(new FakeWorkItem(SINGLE_WAIT)); try { Thread.sleep(SINGLE_WAIT*3); } catch(InterruptedException e) { } } pool.shutdown(); WorkerPoolStatisticsMetadata stats = pool.getStats(); assertTrue("Expected approximately 1 thread for serial execution", stats.getHighestActiveThreads() <= 2); //$NON-NLS-1$ pool.awaitTermination(1000, TimeUnit.MILLISECONDS); }
public WorkerPoolStatisticsMetadata getStats() { WorkerPoolStatisticsMetadata stats = new WorkerPoolStatisticsMetadata(); stats.setName(poolName); stats.setQueued(queue.size()); stats.setHighestQueued(highestQueueSize); stats.setActiveThreads(getActiveCount()); stats.setMaxThreads(this.maximumPoolSize); stats.setTotalSubmitted(getSubmittedCount()); stats.setHighestActiveThreads(getLargestPoolSize()); stats.setTotalCompleted(getCompletedCount()); return stats; }
public ModelNode wrap(WorkerPoolStatisticsMetadata stats, ModelNode node) { if (stats == null) return null; node.get(TYPE).set(ModelType.OBJECT); node.get(ACTIVE_THREADS).set(stats.getActiveThreads()); node.get(HIGHEST_ACTIVE_THREADS).set(stats.getHighestActiveThreads()); node.get(TOTAL_COMPLETED).set(stats.getTotalCompleted()); node.get(TOTAL_SUBMITTED).set(stats.getTotalSubmitted()); node.get(QUEUE_NAME).set(stats.getQueueName()); node.get(QUEUED).set(stats.getQueued()); node.get(HIGHEST_QUEUED).set(stats.getHighestQueued()); node.get(MAX_THREADS).set(stats.getMaxThreads()); wrapDomain(stats, node); return node; }
public WorkerPoolStatisticsMetadata getStats() { WorkerPoolStatisticsMetadata stats = new WorkerPoolStatisticsMetadata(); stats.setName(poolName); stats.setQueued(queue.size()); stats.setHighestQueued(highestQueueSize); stats.setActiveThreads(getActiveCount()); stats.setMaxThreads(this.maximumPoolSize); stats.setTotalSubmitted(getSubmittedCount()); stats.setHighestActiveThreads(getLargestPoolSize()); stats.setTotalCompleted(getCompletedCount()); return stats; }
public WorkerPoolStatisticsMetadata unwrap(ModelNode node) { if (node == null) return null; WorkerPoolStatisticsMetadata stats = new WorkerPoolStatisticsMetadata(); stats.setActiveThreads(node.get(ACTIVE_THREADS).asInt()); stats.setHighestActiveThreads(node.get(HIGHEST_ACTIVE_THREADS).asInt()); stats.setTotalCompleted(node.get(TOTAL_COMPLETED).asLong()); stats.setTotalSubmitted(node.get(TOTAL_SUBMITTED).asLong()); stats.setQueueName(node.get(QUEUE_NAME).asString()); stats.setQueued(node.get(QUEUED).asInt()); stats.setHighestQueued(node.get(HIGHEST_QUEUED).asInt()); stats.setMaxThreads(node.get(MAX_THREADS).asInt()); unwrapDomain(stats, node); return stats; }
public WorkerPoolStatisticsMetadata unwrap(ModelNode node) { if (node == null) return null; WorkerPoolStatisticsMetadata stats = new WorkerPoolStatisticsMetadata(); stats.setActiveThreads(node.get(ACTIVE_THREADS).asInt()); stats.setHighestActiveThreads(node.get(HIGHEST_ACTIVE_THREADS).asInt()); stats.setTotalCompleted(node.get(TOTAL_COMPLETED).asLong()); stats.setTotalSubmitted(node.get(TOTAL_SUBMITTED).asLong()); stats.setQueueName(node.get(QUEUE_NAME).asString()); stats.setQueued(node.get(QUEUED).asInt()); stats.setHighestQueued(node.get(HIGHEST_QUEUED).asInt()); stats.setMaxThreads(node.get(MAX_THREADS).asInt()); unwrapDomain(stats, node); return stats; }