关键配置:
spring.cloud.stream.rabbit.bindings.input.consumer.acknowledge-mode=manual
spring.cloud.stream.rabbit.bindings.input1.consumer.acknowledge-mode=manual
关键代码:
@StreamListener("input")
public void receive(Message<Entity> entityMessage,
@Header(AmqpHeaders.CHANNEL) Channel channel,
@Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag) throws Exception {
if (entityMessage.getPayload() == null ||
StringUtils.isBlank(entityMessage.getPayload().getId())) {
//记录日志
}
try {
channel.basicAck(deliveryTag, false);//手动确认
} catch (Exception ex) {
//记录日志
}
//
//
}
@StreamListener("input1")
public void receive1(
Entity entityMessage,
@Header(AmqpHeaders.CHANNEL) Channel channel,
@Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag) throws Exception {
if (entityMessage== null ||
StringUtils.isBlank(entityMessage.getId())) {
//记录日志
}
try {
channel.basicAck(deliveryTag, false);//手动确认
} catch (Exception ex) {
//记录日志
}
//
//
}