1
我正在接收消費者內部來自RabbitMQ的消息。我必須處理該消息並將處理後的消息發佈到不同的隊列中。我怎麼做到這一點?rabbitmq消費者成爲生產商
我的代碼是
using (IConnection connection = factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
if (!String.IsNullOrEmpty(EXCHANGE_NAME))
channel.ExchangeDeclare(EXCHANGE_NAME, ExchangeType.Direct, durable);
if (!String.IsNullOrEmpty(QUEUE_NAME))
channel.QueueDeclare(QUEUE_NAME, false, false, false, null);
string data = "";
EventingBasicConsumer consumer = new EventingBasicConsumer();
consumer.Received += (o, e) =>
{
//This is the received message
data = data + Encoding.ASCII.GetString(e.Body) + Environment.NewLine;
string processed_data = "processed data = " + data;
//I want to write some code here to post the processed message to a different queue.
//or other idea is "can I use duplex services?
};
string consumerTag = channel.BasicConsume(QUEUE_NAME, true, consumer);
channel.QueueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY, null);
channel.QueueUnbind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY, null);
}
}
我的問題與此類似。 http://stackoverflow.com/questions/3972756/can-you-publish-a-message-while-processing-a-queue-in-rabbitmq-net-client?rq=1 – UltimateBigChill
我寫了一個新的方法,通過處理消息作爲輸入字符串。在該方法內部,我創建了一個連接工廠,一個新模型並將消息發佈到另一個隊列中。這是我採取的方法。 – UltimateBigChill