(三)rabbitmq的訊息確認機制ack
阿新 • • 發佈:2018-11-22
接上一篇文章,在application配置檔案中新增如下配置:
## 訊息手動確認 spring.rabbitmq.listener.simple.acknowledge-mode=manual
這樣就開啟了訊息手動確認,然後再消費者端程式碼中加上如下程式碼進行業務處理完後的訊息確認刪除訊息:
package com.example.demo.consumer; import com.rabbitmq.client.Channel; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import java.io.IOException; /** * Created by yanggm */ @Component public class ReceiveDirect { @RabbitListener(queues = "my-queue") public void receiveMessage(Message message, Channel channel){ String messageRec = new String(message.getBody()); System.out.println("接收到的字串訊息是 => " + messageRec); try { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (IOException e) { e.printStackTrace(); } } }
其他訊息模式以及具體案例見github上面的demo原始碼,地址如下:
https://github.com/xigpz/rabbitmq.git