/** * Set the max time to block in the consumer waiting for records. * @param pollTimeout the timeout in ms; default 1000. * @return the spec. * @see ContainerProperties#setPollTimeout(long) */ public KafkaMessageListenerContainerSpec<K, V> pollTimeout(long pollTimeout) { this.container.getContainerProperties().setPollTimeout(pollTimeout); return this; }
/** * Set the max time to block in the consumer waiting for records. * @param pollTimeout the timeout in ms; default 1000. * @return the spec. * @see ContainerProperties#setPollTimeout(long) */ public KafkaMessageListenerContainerSpec<K, V> pollTimeout(long pollTimeout) { this.container.getContainerProperties().setPollTimeout(pollTimeout); return this; }
@Bean public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() { ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory()); factory.setConcurrency(3); factory.getContainerProperties().setPollTimeout(3000); return factory; }
@Bean({"eventsKafkaListenerContainerFactory", "kafkaListenerContainerFactory"}) public ConcurrentKafkaListenerContainerFactory<String, PublishedEventWrapper> eventsKafkaListenerContainerFactory( EventMessageConverter eventMessageConverter, ConsumerFactory<String, PublishedEventWrapper> consumerFactory) { ConcurrentKafkaListenerContainerFactory<String, PublishedEventWrapper> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory); factory.setConcurrency(eventApisConfiguration.getEventBus().getConsumer().getEventConcurrency()); factory.setMessageConverter(eventMessageConverter); factory.getContainerProperties().setPollTimeout(3000); ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(eventApisConfiguration.getEventBus().getConsumer().getEventSchedulerPoolSize()); scheduler.setBeanName("EventsFactory-Scheduler"); scheduler.initialize(); factory.getContainerProperties().setScheduler(scheduler); factory.getContainerProperties().setAckMode(AbstractMessageListenerContainer.AckMode.RECORD); return factory; }
@Bean("operationsKafkaListenerContainerFactory") public ConcurrentKafkaListenerContainerFactory<String, Operation> operationsKafkaListenerContainerFactory( ConsumerFactory<String, Operation> consumerFactory, PlatformTransactionManager platformTransactionManager) { ConcurrentKafkaListenerContainerFactory<String, Operation> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory); RetryTemplate retryTemplate = new RetryTemplate(); factory.setRetryTemplate(retryTemplate); factory.setConcurrency(eventApisConfiguration.getEventBus().getConsumer().getOperationSchedulerPoolSize()); ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(eventApisConfiguration.getEventBus().getConsumer().getOperationSchedulerPoolSize()); scheduler.setBeanName("OperationsFactory-Scheduler"); scheduler.initialize(); factory.getContainerProperties().setScheduler(scheduler); ThreadPoolTaskScheduler consumerScheduler = new ThreadPoolTaskScheduler(); consumerScheduler.setPoolSize(eventApisConfiguration.getEventBus().getConsumer().getOperationSchedulerPoolSize()); consumerScheduler.setBeanName("OperationsFactory-ConsumerScheduler"); consumerScheduler.initialize(); factory.getContainerProperties().setPollTimeout(3000L); factory.getContainerProperties().setAckOnError(false); factory.getContainerProperties().setConsumerTaskExecutor(consumerScheduler); factory.getContainerProperties().setAckMode(AbstractMessageListenerContainer.AckMode.RECORD); factory.getContainerProperties().setTransactionManager(platformTransactionManager); return factory; }