private RabbitTemplate createRabbitTemplate(MessageConverter messageConverter, RetryTemplate retryTemplate) { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(messageConverter); template.setRetryTemplate(retryTemplate); return template; }
private RabbitTemplate createRabbitTemplate(MessageConverter messageConverter, RetryTemplate retryTemplate) { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(messageConverter); template.setRetryTemplate(retryTemplate); return template; }
/** * This returns the RabbitMQ template used by the producer. * * @return The RabbitMQ the rabbit template used by the producer. * * @since 1.0 */ @Bean RabbitTemplate capabilityRegistryServiceRabbitTemplate() { final RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(capabilityRegistryServiceMessageConverter()); template.setRetryTemplate(capabiltyRegistryServiceRabbitTemplateRetry()); return template; }
/** * This returns the RabbitMQ template used by the producer. * * @return The RabbitMQ the rabbit template used by the producer. * * @since 1.0 */ @Bean RabbitTemplate capabilityRegistryControlRabbitTemplate() { final RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(capabilityRegistryControlMessageConverter()); template.setRetryTemplate(capabiltyRegistryControlRabbitTemplateRetry()); return template; }
/** * Submit the required number of senders into the pool. */ private void startSenders() { this.rabbitTemplate.setConnectionFactory(this.manager.connectionFactory); if (this.manager.async) { for (int i = 0; i < this.manager.senderPoolSize; i++) { this.manager.senderPool.submit(new EventSender()); } } else if (this.manager.maxSenderRetries > 0) { RetryTemplate retryTemplate = new RetryTemplate(); RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries); retryTemplate.setRetryPolicy(retryPolicy); this.rabbitTemplate.setRetryTemplate(retryTemplate); } }
private RabbitTemplate registrationRabbitTemplate() { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(registrationMessageConverter()); template.setRetryTemplate(registrationRetryTemplate()); return template; }
private RabbitTemplate registrationRabbitTemplate() { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(registrationMessageConverter()); template.setRetryTemplate(registrationRetryTemplate()); return template; }
@Bean RabbitTemplate approvedClaimRabbitTemplate(ConnectionFactory connectionFactory, @Value("${io.fundrequest.azrael.queue.approved-claim}") final String queueName) { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setRoutingKey(queueName); RetryTemplate retryTemplate = new RetryTemplate(); retryTemplate.setRetryPolicy(new SimpleRetryPolicy(5)); rabbitTemplate.setRetryTemplate(retryTemplate); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); return rabbitTemplate; } }
/** * @return {@link RabbitTemplate} with automatic retry, published confirms * and {@link Jackson2JsonMessageConverter}. */ @Bean public RabbitTemplate rabbitTemplate() { final RabbitTemplate rabbitTemplate = new RabbitTemplate(rabbitConnectionFactory); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); final RetryTemplate retryTemplate = new RetryTemplate(); retryTemplate.setBackOffPolicy(new ExponentialBackOffPolicy()); rabbitTemplate.setRetryTemplate(retryTemplate); rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> { if (ack) { LOGGER.debug("Message with {} confirmed by broker.", correlationData); } else { LOGGER.error("Broker is unable to handle message with {} : {}", correlationData, cause); } }); return rabbitTemplate; }
/** * This returns the RabbitMQ template. * * @return The RabbitMQ template. * * @since 1.0 */ @Bean RabbitTemplate rabbitTemplate() { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory()); template.setMessageConverter(capabilityRegistryMessageConverter()); template.setRetryTemplate(retryTemplate()); return template; }
/** * Submit the required number of senders into the pool. */ private void startSenders() { this.rabbitTemplate.setConnectionFactory(this.manager.connectionFactory); if (this.manager.async) { for (int i = 0; i < this.manager.senderPoolSize; i++) { this.manager.senderPool.submit(new EventSender()); } } else if (this.manager.maxSenderRetries > 0) { RetryTemplate retryTemplate = new RetryTemplate(); RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries); retryTemplate.setRetryPolicy(retryPolicy); this.rabbitTemplate.setRetryTemplate(retryTemplate); } }
@Bean public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { // TODO: 05.03.18 Guil: // Set these static values on the applications.properties RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setReplyTimeout(10000); rabbitTemplate.setReceiveTimeout(10000); RetryTemplate retryTemplate = new RetryTemplate(); ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy(); backOffPolicy.setInitialInterval(500); backOffPolicy.setMultiplier(10.0); backOffPolicy.setMaxInterval(10000); retryTemplate.setBackOffPolicy(backOffPolicy); rabbitTemplate.setRetryTemplate(retryTemplate); return rabbitTemplate; }
@Bean RabbitTemplate rabbitTemplate(org.springframework.amqp.rabbit.connection.ConnectionFactory cf, ObjectMapper mapper) { RabbitTemplate template = new RabbitTemplate(cf); template.setExchange(EXCHANGE_NAME); RetryTemplate retry = new RetryTemplate(); ExponentialBackOffPolicy backOff = new ExponentialBackOffPolicy(); backOff.setInitialInterval(1000); backOff.setMultiplier(1.5); backOff.setMaxInterval(60000); retry.setBackOffPolicy(backOff); template.setRetryTemplate(retry); template.setMessageConverter(new Jackson2JsonMessageConverter(mapper)); return template; }
@Test public void testRecovery() throws Exception { ConnectionFactory mockConnectionFactory = mock(ConnectionFactory.class); final AtomicInteger count = new AtomicInteger(); willAnswer(invocation -> { count.incrementAndGet(); throw new AuthenticationFailureException("foo"); }).given(mockConnectionFactory).newConnection(any(ExecutorService.class), anyString()); SingleConnectionFactory connectionFactory = new SingleConnectionFactory(mockConnectionFactory); connectionFactory.setExecutor(mock(ExecutorService.class)); RabbitTemplate template = new RabbitTemplate(connectionFactory); template.setRetryTemplate(new RetryTemplate()); final AtomicBoolean recoverInvoked = new AtomicBoolean(); template.setRecoveryCallback(context -> { recoverInvoked.set(true); return null; }); template.convertAndSend("foo", "bar", "baz"); assertEquals(3, count.get()); assertTrue(recoverInvoked.get()); }
@Test public void testRetry() throws Exception { ConnectionFactory mockConnectionFactory = mock(ConnectionFactory.class); final AtomicInteger count = new AtomicInteger(); willAnswer(invocation -> { count.incrementAndGet(); throw new AuthenticationFailureException("foo"); }).given(mockConnectionFactory).newConnection(any(ExecutorService.class), anyString()); SingleConnectionFactory connectionFactory = new SingleConnectionFactory(mockConnectionFactory); connectionFactory.setExecutor(mock(ExecutorService.class)); RabbitTemplate template = new RabbitTemplate(connectionFactory); template.setRetryTemplate(new RetryTemplate()); try { template.convertAndSend("foo", "bar", "baz"); } catch (AmqpAuthenticationException e) { assertThat(e.getMessage(), containsString("foo")); } assertEquals(3, count.get()); }
retryTemplate.setRetryPolicy(retryPolicy); retryTemplate.setBackOffPolicy(backOff); rabbitTemplate.setRetryTemplate(retryTemplate);
retryTemplate.setRetryPolicy(retryPolicy); retryTemplate.setBackOffPolicy(backOff); rabbitTemplate.setRetryTemplate(retryTemplate);