@Configuration
public class ActiveMQConfig {
@Bean
public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) {
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
jmsTemplate.setDeliveryPersistent(true); // 设置消息持久化
jmsTemplate.setExplicitQosEnabled(true); // 开启QoS
jmsTemplate.setPriority(4); // 设置消息优先级
jmsTemplate.setTimeToLive(60000); // 设置消息过期时间
jmsTemplate.setSessionTransacted(true); // 开启事务
jmsTemplate.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE); // 设置手动确认机制
jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT); // 消息持久化
jmsTemplate.setTimeToLive(60000); // 设置
}
@Bean
public RedeliveryPolicy redeliveryPolicy() {
RedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
redeliveryPolicy.setMaximumRedeliveries(3); // 设置最大重试次数为3
redeliveryPolicy.setInitialRedeliveryDelay(5000); // 设置初始重试间隔为5秒
redeliveryPolicy.setBackOffMultiplier(2); // 设置重试间隔递增倍数为2
return redeliveryPolicy;
}
}