Ví dụ khai báo đầu tiên của QueueingBasicConsumer() bao gồm mô hình.
Từ mô hình thực hiện mô hình.BasicConsume (QueueName, false, consumer)
Sau đó, thực hiện một vòng lặp sẽ lặp lại các tin nhắn từ hàng đợi, sau đó sẽ xử lý
Phương thức tiếp theo - consumer.Queue.Dequeue() tin nhắn được nhận từ hàng đợi.
Sau đó chuyển đổi mảng byte thành chuỗi và hiển thị nó.
Model.BasicAck() - thông điệp giải thoát ra khỏi hàng đợi để nhận được thông báo tiếp theo
Và sau đó ở phía máy chủ có thể bắt đầu chờ đợi thông điệp bên cạnh đi qua:
public string GetMessagesByQueue(string QueueName)
{
var consumer = new QueueingBasicConsumer(_model);
_model.BasicConsume(QueueName, false, consumer);
string message = string.Empty;
while (Enabled)
{
//Get next message
var deliveryArgs = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
//Serialize message
message = Encoding.Default.GetString(deliveryArgs.Body);
_model.BasicAck(deliveryArgs.DeliveryTag, false);
}
return message;
}
Nguồn
2016-02-25 17:51:06
Ngày nay nó là một giải pháp không dùng nữa. https://www.rabbitmq.com/releases/rabbitmq-java-client/v3.4.1/rabbitmq-java-client-javadoc-3.4.1/com/rabbitmq/client/QueueingConsumer.html – pisaruk
Có cách nào tốt hơn để giải quyết vấn đề? – Robinho