private void initializeRunningStateByQueue() { this.runningStateByQueue = new ConcurrentHashMap<>(getRegisteredQueues().size()); for (String queueName : getRegisteredQueues().keySet()) { this.runningStateByQueue.put(queueName, false); } }
private void initializeRunningStateByQueue() { this.runningStateByQueue = new ConcurrentHashMap<>(getRegisteredQueues().size()); for (String queueName : getRegisteredQueues().keySet()) { this.runningStateByQueue.put(queueName, false); } }
public void start(String logicalQueueName) { Assert.isTrue(this.runningStateByQueue.containsKey(logicalQueueName), "Queue with name '" + logicalQueueName + "' does not exist"); QueueAttributes queueAttributes = this.getRegisteredQueues().get(logicalQueueName); startQueue(logicalQueueName, queueAttributes); }
private void scheduleMessageListeners() { for (Map.Entry<String, QueueAttributes> registeredQueue : getRegisteredQueues().entrySet()) { startQueue(registeredQueue.getKey(), registeredQueue.getValue()); } }
private void scheduleMessageListeners() { for (Map.Entry<String, QueueAttributes> registeredQueue : getRegisteredQueues().entrySet()) { startQueue(registeredQueue.getKey(), registeredQueue.getValue()); } }
public void start(String logicalQueueName) { Assert.isTrue(this.runningStateByQueue.containsKey(logicalQueueName), "Queue with name '" + logicalQueueName + "' does not exist"); QueueAttributes queueAttributes = this.getRegisteredQueues().get(logicalQueueName); startQueue(logicalQueueName, queueAttributes); }
@Override protected void initialize() { super.initialize(); if (this.taskExecutor == null) { this.defaultTaskExecutor = true; this.taskExecutor = createDefaultTaskExecutor(); } initializeRunningStateByQueue(); this.scheduledFutureByQueue = new ConcurrentHashMap<>(getRegisteredQueues().size()); }
@Override protected void initialize() { super.initialize(); if (this.taskExecutor == null) { this.defaultTaskExecutor = true; this.taskExecutor = createDefaultTaskExecutor(); } initializeRunningStateByQueue(); this.scheduledFutureByQueue = new ConcurrentHashMap<>(getRegisteredQueues().size()); }
/** * Create a default TaskExecutor. Called if no explicit TaskExecutor has been specified. * <p>The default implementation builds a {@link org.springframework.core.task.SimpleAsyncTaskExecutor} * with the specified bean name (or the class name, if no bean name specified) as thread name prefix. * * @return a {@link org.springframework.core.task.SimpleAsyncTaskExecutor} configured with the thread name prefix * @see org.springframework.core.task.SimpleAsyncTaskExecutor#SimpleAsyncTaskExecutor(String) */ protected AsyncTaskExecutor createDefaultTaskExecutor() { String beanName = getBeanName(); ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); threadPoolTaskExecutor.setThreadNamePrefix(beanName != null ? beanName + "-" : DEFAULT_THREAD_NAME_PREFIX); int spinningThreads = this.getRegisteredQueues().size(); if (spinningThreads > 0) { threadPoolTaskExecutor.setCorePoolSize(spinningThreads * DEFAULT_WORKER_THREADS); int maxNumberOfMessagePerBatch = getMaxNumberOfMessages() != null ? getMaxNumberOfMessages() : DEFAULT_WORKER_THREADS; threadPoolTaskExecutor.setMaxPoolSize(spinningThreads * (maxNumberOfMessagePerBatch + 1)); } // No use of a thread pool executor queue to avoid retaining message to long in memory threadPoolTaskExecutor.setQueueCapacity(0); threadPoolTaskExecutor.afterPropertiesSet(); return threadPoolTaskExecutor; }
/** * Create a default TaskExecutor. Called if no explicit TaskExecutor has been specified. * <p>The default implementation builds a {@link org.springframework.core.task.SimpleAsyncTaskExecutor} * with the specified bean name (or the class name, if no bean name specified) as thread name prefix. * * @return a {@link org.springframework.core.task.SimpleAsyncTaskExecutor} configured with the thread name prefix * @see org.springframework.core.task.SimpleAsyncTaskExecutor#SimpleAsyncTaskExecutor(String) */ protected AsyncTaskExecutor createDefaultTaskExecutor() { String beanName = getBeanName(); ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); threadPoolTaskExecutor.setThreadNamePrefix(beanName != null ? beanName + "-" : DEFAULT_THREAD_NAME_PREFIX); int spinningThreads = this.getRegisteredQueues().size(); if (spinningThreads > 0) { threadPoolTaskExecutor.setCorePoolSize(spinningThreads * DEFAULT_WORKER_THREADS); int maxNumberOfMessagePerBatch = getMaxNumberOfMessages() != null ? getMaxNumberOfMessages() : DEFAULT_WORKER_THREADS; threadPoolTaskExecutor.setMaxPoolSize(spinningThreads * (maxNumberOfMessagePerBatch + 1)); } // No use of a thread pool executor queue to avoid retaining message to long in memory threadPoolTaskExecutor.setQueueCapacity(0); threadPoolTaskExecutor.afterPropertiesSet(); return threadPoolTaskExecutor; }