Как получить consumerTag в spring-rabbitmq 1.x - PullRequest
0 голосов
/ 26 мая 2020

конфигурация spring-rabbitmq похожа на

            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit</artifactId>
            <version>1.1.3.RELEASE</version>

Я хочу отменить потребителя, используйте channel.basicCannel(consumerTag)

, когда я использую ChannelAwareMessageListener в версии spring-rabbitmq 2.x , consumerTag находятся в MessageProperties, но мой онлайн-сервис использует версию 1.x, в MessageProperties нет consumerTag, поэтому я не могу использовать API basicCancel

мой полный код слушателя ниже

public class RPCListener implements ChannelAwareMessageListener {
    private static final Logger log = LoggerFactory.getLogger(RPCListener.class);

    @Autowired
    private MessagePropertiesConverter messagePropertiesConverter;

    private MessageConverter messageConverter = new SimpleMessageConverter();

    @Autowired
    private AmqpTemplate amqpTemplate;
    private Boolean flag = false;

    @Override
    public void onMessage(Message message, Channel channel) throws Exception {
        try {
            log.error("DeliveryTag(): {}", message.getMessageProperties().getDeliveryTag());
            if (flag) {
                log.error("canceling....");
                //If true, messages will be requeued and possibly
                channel.basicRecover(true);
                // there is no consumerTag property in MessageProperties 
                //channel.basicCancel(message.getMessageProperties().getConsumerTag());
                return;
            }
            amqpTemplate.send(message.getMessageProperties().getReplyTo(), message);
            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Boolean getFlag() {
        return flag;
    }

    public void setFlag(Boolean flag) {
        this.flag = flag;
    }
}

Есть ли способ получить consumerTag?

Всем спасибо!

1 Ответ

1 голос
/ 26 мая 2020

1.1.3 - 7 лет; consumerTag был добавлен к MessageProperties в 1.4.2 .

Единственная поддерживаемая версия 1.x - 1.7.14 - см. страницу проекта .

1.7.x больше не будет поддерживаться после этого года.

Однако; НЕ следует вручную отменять потребителя ; вместо этого остановите контейнер.

...