private void adjustConsumers(int newCount) { synchronized (this.consumersMonitor) { checkStartState(); this.consumersToRestart.clear(); for (String queue : getQueueNames()) { while (this.consumersByQueue.get(queue) == null || this.consumersByQueue.get(queue).size() < newCount) { // NOSONAR never null doConsumeFromQueue(queue); } List<SimpleConsumer> consumerList = this.consumersByQueue.get(queue); if (consumerList != null && consumerList.size() > newCount) { int delta = consumerList.size() - newCount; for (int i = 0; i < delta; i++) { int index = findIdleConsumer(); if (index >= 0) { SimpleConsumer consumer = consumerList.remove(index); if (consumer != null) { cancelConsumer(consumer); } } } } } } }
final String[] queueNames = getQueueNames(); checkMissingQueues(queueNames); long idleEventInterval = getIdleEventInterval();
final String[] queueNames = getQueueNames(); checkMissingQueues(queueNames); long idleEventInterval = getIdleEventInterval();
private void adjustConsumers(int newCount) { synchronized (this.consumersMonitor) { checkStartState(); this.consumersToRestart.clear(); for (String queue : getQueueNames()) { while (this.consumersByQueue.get(queue) == null || this.consumersByQueue.get(queue).size() < newCount) { // NOSONAR never null doConsumeFromQueue(queue); } List<SimpleConsumer> consumerList = this.consumersByQueue.get(queue); if (consumerList != null && consumerList.size() > newCount) { int delta = consumerList.size() - newCount; for (int i = 0; i < delta; i++) { int index = findIdleConsumer(); if (index >= 0) { SimpleConsumer consumer = consumerList.remove(index); if (consumer != null) { cancelConsumer(consumer); } } } } } } }
assertEquals("handle", listenerAccessor.getPropertyValue("defaultListenerMethod")); Queue queue = beanFactory.getBean("bar", Queue.class); assertEquals("[foo, " + queue.getName() + "]", Arrays.asList(container.getQueueNames()).toString()); assertEquals(5, ReflectionTestUtils.getField(container, "consumersPerQueue")); assertEquals(5000L, ReflectionTestUtils.getField(container, "monitorInterval"));
assertEquals(false, fieldAccessor.getPropertyValue("mismatchedQueuesFatal")); assertEquals(messageListener, container.getMessageListener()); assertEquals("myQueue", container.getQueueNames()[0]); assertSame(scheduler, fieldAccessor.getPropertyValue("taskScheduler")); assertEquals(1234L, fieldAccessor.getPropertyValue("monitorInterval"));
container.afterPropertiesSet(); container.setQueues(new Queue(Q1)); assertArrayEquals(new String[] { Q1 }, container.getQueueNames()); container.start(); container.addQueues(new Queue(Q2));